我使用“ThisOutlookSession”和表单“UserFormWorkTime”。
使用Outlook 2010我没有遇到任何问题。但是现在使用Outlook 2013 ,我收到以下错误:
这是我的代码:
'Benutzername für E-Mail auslesen
'MsgBox Session.Accounts.Item(1).UserName
Var = Split(Session.Accounts.Item(1).UserName, ".")
Vorname = Var(0)
Name = Var(1)
' E-Mail erstellen und anzeigen
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
If TextBoxInputWorkStart = "" Then
With objMail
.To = TextBoxInputTo
.CC = TextBoxInputCC
.Subject = "Arbeitszeit " + TextBoxInputDate + ""
.HTMLBody = "Sehr geehrte Damen und Herren," & "<br><br>" & "aufgrund " & TextBoxInputReason & " war keine Zeiterfassung möglich." & "<br><br>" & "Ende: " & TextBoxInputWorkEnd & "<br><br>" & "Vielen Dank für das Eintragen" & "<br>" & Vorname & " " & Name
' A dialog box is open. Close it and try again => avoid this error, display it modelessly
Unload Me
objMail.Display
End With
答案 0 :(得分:3)
一些事情。
1)如果这是Outlook VBA并且您正确使用ThisOutlookSession
,那么就没有了
Set objOutlook = CreateObject("Outlook.Application")
2)始终将字符串s与&
连接,不要使用+
3)不要将对象与其.Text
值混淆。而不是TextBoxInputDate
使用TextBoxInputDate.Text
。
尝试以下稍微改编的代码:
Dim objMail As MailItem
' E-Mail erstellen und anzeigen
Set objMail = ThisOutlookSession.CreateItem(olMailItem)
With objMail
.To = TextBoxInputTo.Text
.CC = TextBoxInputCC.Text
.Subject = "Arbeitszeit " & TextBoxInputDate.Text & ""
.HTMLBody = "Sehr geehrte Damen und Herren," & "<br><br>" & "aufgrund " & TextBoxInputReason.Text & " war keine Zeiterfassung möglich." & "<br><br>" & "Ende: " & TextBoxInputWorkEnd.Text & "<br><br>" & "Vielen Dank für das Eintragen" & "<br>" & Vorname & " " & Name
' A dialog box is open. Close it and try again => avoid this error, display it modelessly
Unload Me
objMail.Display
End With
答案 1 :(得分:3)
使用MailItem类的Recipients属性添加收件人。 “收件人”类的Add方法在“收件人”集合中创建新收件人。新的Recipient对象的Type属性设置为关联的AppointmentItem,JournalItem,MailItem,MeetingItem或TaskItem对象的默认值,必须重置以指示其他收件人类型。
Set myItem = Application.CreateItem(olMailItem)
Set myRecipient = myItem.Recipients.Add ("Eugene Astafiev")
myRecipient.Type = olCC
不要忘记使用收件人类的Resolve或ResolveAll方法来根据地址簿解析收件人。
您是否在代码中遇到任何异常或错误?
答案 2 :(得分:0)
错误代码是RPC_E_DISCONNECTED,这意味着当您仍然引用其中一个对象时,进程外COM服务器已终止。
当代码自动关闭Outlook时,通常会发生这种情况。