问题描述
我没有任何编码背景,我只是一名初级会计师,我从 youtube 复制了一个 VBA 编码并进行了修改以满足我发送电子邮件给客户进行月结单的需要。
我需要帮助解决以下两个问题:
- 我可以设置要用于发送给客户的特定电子邮件地址吗?目前,我为几家公司负责,而且电子邮件地址不同。
- 有时我需要 1 个以上的附件,这就是为什么我在 excel 上只需要很少的附件列。但是,有时不行,没有附件时,VBA会运行并告诉我错误,我该如何解决?
以下是代码,感谢您可以对上述问题提供一些帮助,或者您可以在不改变我的需求的情况下修改为更好的编码。谢谢。
Sub Send_Email_with_Signature()
Dim Outlook_App As Object
Dim msg As Object
Dim sign As String
Dim i As Integer
Set Outlook_App = CreateObject("outlook.application")
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Data")
For i = 3 To sh.Range("B" & Application.Rows.Count).End(xlUp).Row
If sh.Range("A" & i).Value = "" Then ''Check Skip
Set msg = Outlook_App.CreateItem(0)
With msg
.display
End With
sign = msg.htmlbody
With msg
.To = sh.Range("C" & i).Value
.cc = sh.Range("D" & i).Value
.Subject = sh.Range("E" & i).Value
.htmlbody = "<p style='font-family:Calibri(Body);font-size:16'>" & "Dear Account Department," & "<br><br><p>" & "<p style='font-family:Calibri(Body);font-size:16'>" & "Attached with the statement of account as at " & sh.Range("F" & i).Value & " for your references.</p>" & "<span style='background:yellow;mso-highlight:yellow'><b><p style='font-family:Calibri(Body);font-size:16'>" & "Please forward to your relevant department/person for action if you are not the intended recipient." & "<br/>" & "If your payment has been sent,please disregard this notice.</span></b>" & _
sign
.attachments.Add sh.Range("G" & i).Value
.attachments.Add sh.Range("H" & i).Value
.attachments.Add sh.Range("I" & i).Value
If sh.Range("H1").Value = 1 Then ''' check option button value
.send
Else
.display
End If
End With
Set msg = nothing
End If
Next i
Set Outlook_App = nothing
If sh.Range("H1").Value = 1 Then MsgBox "Done"
End Sub
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)