我的代码运行正常,直到附件出现。
我想做什么。
这是代码
Dim SendTo As String
Dim Atmt As String
Dim ToMSg As String
For i = 2 To LastRow
Atmt = ThisWorkbook.Sheets(1).Cells(i, 3).Value
SendTo = ThisWorkbook.Sheets(1).Cells(i, 2)
If SendTo <> "" Then
ToMSg = DraftBox.Value
Send_Mail SendTo, ToMSg
End If
Next i
Unload Me
End Sub
Sub Send_Mail(SendTo As String, ToMSg As String)
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = SendTo
.CC = CC.Value
.BCC = BCC.Value
.Subject = Subject.Value
.Body = ToMSg
.attachments.add Atmt
.Send
我已附上相关代码。它一直告诉我Atmt是空的。请帮忙..
答案 0 :(得分:0)
在Send_Mail
子中,您需要包含一个参数来传递附件路径:
Sub Send_Mail(SendTo As String, ToMSg As String, Atmt as String)
然后当你调用Send_Mail
sub时,传递你想要提供的参数:
Send_Mail SendTo, ToMSg, Atmt
我使用Atmt
的事实完全是任意的,并且基于您的示例。您可以在子组中为字符串调用任何名称。
您也可以将Atmt
声明为任何特定Global
范围之外的Public
或Sub
变量,从而使其有效。它当前在第一个sub中声明,因此当你尝试在Send_Mail
sub中使用它时,该子变量是未知的,因此它告诉你它是空的。