【发布时间】:2013-04-12 15:29:17
【问题描述】:
我有以下代码,在这个之前的 10 个宏可以正常工作(我使用调用 x,调用 Y 宏),但是这个不想工作。
Sub Send_Tips()
Application.DisplayAlerts = False
Dim Email_Subject, Email_Send_From, Email_Body As String, i As Integer
Dim Mail_Object, nameList As String, o As Variant
Email_Send_From = ""
For i = 1 To 1 'use cells 1 to 1 in column "A" where names are stored
If Sheets("Tips").Range("A1").Value <> "" Then
nameList = nameList & ";" & Sheets("Tips").Range("A" & i).Value
End If
Next
Set Mail_Object = CreateObject("Outlook.Application")
With Mail_Object.CreateItem(o)
.Subject = "Dealer Action Plans"
.To = nameList
.Body = "Please find attached the latest version of the Dealer Action Plans."
'Make a copy of the active sheet and save it to
'a temporary file
Worksheets("Tips").Activate
ActiveSheet.Copy
Set wb = ActiveWorkbook
Filename = "Tips.pdf"
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Worksheets("Tips").ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:="c:\aaaWork\Tips.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
' ActiveWorkbook.SaveAs Filename:="C:\aaaWork\NC1.PDF", FileFormat:=17
.Attachments.Add "C:\aaaWork\Tips.PDF"
.send 'Will send straight away use .display to send manually
ActiveWorkbook.Close Saved = True
Kill "C:\aaaWork\Tips.PDF"
End With
Application.DisplayAlerts = True
End Sub
当我收到以下错误信息时 .send '将立即发送使用 .display 手动发送 被跑了。 运行时错误“2147467259 (80004005)”: Outlook 无法识别一个或多个名称
工作表名称提示确实存在,有什么想法吗?
谢谢!
【问题讨论】:
-
您的变量未正确声明。这可能会帮助您调试。
-
如果将
.send改为.display,错误(或类似错误)是否仍然存在? -
另外,请尝试将创建临时文件的代码块(
Worksheets("Tips").Activate ... OpenAfterPublish:=False移动到 之前Set Mail_Object...。 -
显示效果很好,但移动方块没有帮助!
-
已解决:显示功能显示电子邮件地址对 Excel 不可见,已修复此问题并且一切正常。感谢您的建议!