วันจันทร์ที่ 29 มีนาคม 2021
  0 ตอบกลับ
  เยี่ยมชม 2.8 พันครั้ง
0
โหวต
แก้
สวัสดี ฉันกำลังใช้รหัสของคุณเพื่อส่งช่วง Excel เป็นไฟล์แนบในอีเมล แต่ได้รับข้อผิดพลาดรันไทม์หากฉันยกเลิกช่วงดังกล่าว มีรหัสที่ฉันสามารถเพิ่มหรือ msgbox ได้โปรดป้องกันไม่ให้สิ่งนี้เกิดขึ้น ขอบคุณรหัสด้านล่าง

ช่วงการส่งย่อย()
Dim xFile เป็นสตริง
Dim xFormat ตราบเท่าที่
Dim Wb เป็นสมุดงาน
Dim Wb2 เป็นสมุดงาน
Dim Ws เป็นแผ่นงาน
Dim FilePath เป็นสตริง
หรี่ชื่อไฟล์เป็นสตริง
หรี่ OutlookApp เป็นวัตถุ
หรี่ OutlookMail เป็นวัตถุ
Dim WorkRng เป็นช่วง
xTitleId = "ตัวอย่าง"
Sและ WorkRng = Application.Selection
ตั้งค่า WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)

Application.ScreenUpdating = เท็จ
Application.DisplayAlerts = เท็จ
ตั้งค่า Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
ตั้งค่า Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.คัดลอก
ตั้งค่า Wb2 = Application.ActiveWorkbook
เลือกกรณี Wb.FileFormat
กรณี xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
กรณี xlOpenXMLWorkbookMacroEnabled:
    ถ้า Wb2.HasVBProject แล้ว
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    อื่น
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    End If
กรณี Excel8:
    xFile = ".xls"
    xFormat = Excel8
กรณี xlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
สิ้นสุดการเลือก
FilePath = Environ$("ชั่วคราว") & "\"
ชื่อไฟล์ = Wb.Name & รูปแบบ (ตอนนี้ "dd-mmm-yy h-mm-ss")
ตั้งค่า OutlookApp = CreateObject ("Outlook.Application")
ตั้งค่า OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & ชื่อไฟล์ & xFile, FileFormat:=xFormat
ด้วย OutlookMail
    .ถึง = ""
    .CC = ""
    .BCC = ""
    .Subject = "การทดสอบ"
    .Body = "สวัสดี"
    .ไฟล์แนบเพิ่ม Wb2.FullName
    .ส่ง
จบด้วย
Wb2.ปิด
ฆ่า FilePath & ชื่อไฟล์ & xFile
ตั้งค่า OutlookMail = Nothing
ตั้งค่า OutlookApp = Nothing
Ws.ลบ
Application.DisplayAlerts = จริง
Application.ScreenUpdating = จริง
ย่อยสิ้นสุด
 
ไม่มีคำตอบสำหรับโพสต์นี้