我需要从excel-sheet发送一些电子邮件。我目前使用的是Excel2010,但它也应该适用于2013.我在网上寻找解决方案并找到了一个功能,不幸的是这对我不起作用。
Sub SendMail(Recepient As String, Address As String, Subject As String, Contents As String)
Dim mapi_session As MSMAPI.MAPISession
Dim mapi_messages As MSMAPI.MAPIMessages
'Set mapi_session = New MSMAPI.MAPISession
Set mapi_session = CreateObject("MAPI.Session")
...
在第Set mapi_session = New MSMAPI.MAPISession
行,它会抛出一个错误,说“无法通过ActiveX组件创建对象(我从德语翻译)”。我做了一些调查,并遇到了一个建议使用CreateObject的线程,但它仍然会抛出相同的错误。
我事先包含了msmapi32.ocx。
我对VBA很陌生 - 不知道问题可能是什么?
提前致谢,
弗兰克
答案 0 :(得分:1)
CD不再安装CDO 1.21(即#34; MAPI.Session
")。您可以从https://www.microsoft.com/en-us/download/details.aspx?id=3671下载它,但请记住,Microsoft不再开发或支持它。
你如何处理CDO 1.21?您确实需要更改代码才能使用Outlook Object Model。您还可以使用Redemption - 它的RDO对象系列(就像CDO 1.21一样)是一个进程内MAPI包装器,它的RDOSession对象类似于{{1在CDO 1.21中(但有很多额外的好处)。
答案 1 :(得分:0)
尝试Set mapi_session = CreateObject("MSMAPI.MAPISession")
。