By Khách vào thứ bảy, ngày 01 tháng 2018 năm XNUMX
Được đăng trong Kutools cho Excel
Trả lời 0
Lượt thích 0
Lượt xem 2.6K
Bình chọn 0
Tôi đã cài đặt kutools để hỗ trợ một dự án cho công việc. Tôi cũng quản lý một báo cáo của công ty lớn có macro tạo email từ thông tin đã nhập. Macro đó đã ngừng hoạt động trên máy tính của tôi. Nó hoạt động trên các máy tính không có kutools. Có ai gặp phải một cái gì đó như thế này trước đây không? Đây là macro hoạt động tốt trên các máy tính khác:

Sub Mail_Sheet_Outlook_Body ()
'Làm việc trong Excel 2000-2016
Ứng dụng.ReferenceStyle = xlA1
Dim rng As Range
Làm mờ ứng dụng dưới dạng đối tượng
Dim OutMail làm đối tượng
Dim xFolder dưới dạng chuỗi
Dim xSht dưới dạng bảng tính
Dim xSub dưới dạng chuỗi
Phản hồi mờ dưới dạng chuỗi
Dim Msg dưới dạng chuỗi
Phong cách mờ dưới dạng chuỗi
Làm mờ tiêu đề dưới dạng chuỗi

Đặt xSht = ActiveSheet
Msg = "Bạn có chắc chắn muốn gửi biểu mẫu này qua email không?" 'Xác định tin nhắn.
Style = vbYesNo + vbCritical + vbDefaultButton2 'Xác định các nút.
Title = "Xác nhận gửi email" 'Xác định tiêu đề.
Phản hồi = MsgBox (Tin nhắn, Kiểu)

Nếu Phản hồi = vbYes thì
xFolder = Environ ("USERPROFILE") + "\ Desktop \" + "\ Field Audit Form--" + CStr (xSht.Cells (19, "A"). Value) + "-. pdf"
'xSub = "Kiểm tra trường cho cửa hàng" + CStr (xSht.Cells (19, "A"). Giá trị)
Với ứng dụng
.EnableEvents = Sai
.ScreenUpdating = Sai
Kết thúc với

Đặt rng = Không có gì
Đặt rng = ActiveSheet.UsedRange
'Bạn cũng có thể sử dụng tên trang tính
'Đặt rng = Sheets ("YourSheet"). UsedRange

Đặt OutApp = CreateObject ("Outlook.Application")
Đặt OutMail = OutApp.CreateItem (0)
Dim varCellvalue miễn là dài




On Error Resume Next
Với OutMail
.To = ""
.CC = ""
.BCC = ""
.Subject = "Tóm tắt"
.Attachments.Add xFolder
.HTMLBody = RangetoHTML (rng)
.Display 'hoặc sử dụng .Display

Kết thúc với
Về lỗi GoTo 0

Với ứng dụng
.EnableEvents = Đúng
.ScreenUpdating = Đúng
Kết thúc với

Set OutMail = Không có gì
Đặt OutApp = Không có gì
Cuối Nếu
End Sub


Hàm RangetoHTML (rng As Range)
'Làm việc tại Văn phòng 2000-2016
Dim fso làm đối tượng
Dim ts làm đối tượng
Dim TempFile dưới dạng chuỗi
Làm mờ TempWB dưới dạng sổ làm việc

TempFile = Environ $ ("temp") & "\" & Format (Bây giờ, "dd-mm-yy h-mm-ss") & ".htm"

'Sao chép phạm vi và tạo một sổ làm việc mới để dán dữ liệu vào
rng.Sao chép
Đặt TempWB = Workbooks.Add (1)
Với TempWB.Sheets (1)
.Cells (1) .PasteSpecial Paste: = 8
.Cells (1) .PasteSpecial xlPasteValues,, Sai, Sai
.Cells (1) .PasteSpecial xlPasteFormats,, False, False
.Cells (1) .Select
Application.CutCopyMode = Sai
On Error Resume Next
.DrawingObjects.Vosystem = True
.drawObjects.Delete
Về lỗi GoTo 0
Kết thúc với

'Xuất bản trang tính này thành tệp htm
Với TempWB.PublishObjects.Add (_
SourceType: = xlSourceRange, _
Tên tệp: = TempFile, _
Trang tính: = TempWB.Sheets (1) .Name, _
Nguồn: = TempWB.Sheets (1) .UsedRange.Address, _
HtmlType: = xlHtmlStatic)
.Publish (Đúng)
Kết thúc với

'Đọc tất cả dữ liệu từ tệp htm sang RangetoHTML
Đặt fso = CreateObject ("Scripting.FileSystemObject")
Đặt ts = fso.GetFile (TempFile) .OpenAsTextStream (1, -2)
RangetoHTML = ts.readall
ts.Đóng
RangetoHTML = Replace (RangetoHTML, "align = center x: Publishingsource =", _
"align = left x: Publishingsource =")

'Đóng TempWB
TempWB. Đóng các thay đổi lưu: = Sai

'Xóa tệp htm mà chúng tôi đã sử dụng trong chức năng này
Giết TempFile
Đặt ts = Không có gì
Đặt fso = Không có gì
Đặt TempWB = Không có gì

Cuối Chức năng
Xem toàn bộ bài viết