Object Required VBA Outlook

问题描述:

我不确定这里有什么不喜欢我的代码,我在.NET中有经验,但VBA对我来说是新手。我知道什么时候调用函数不会执行myFunction('args'),而是执行myFunction参数,但我没有这个问题。任何帮助表示赞赏。谢谢!Object Required VBA Outlook

Public Sub LogMeIn() 
Dim item As Outlook.MailItem 
Dim body As String 
Dim subject As String 
Dim oFld As Outlook.Folder 
Dim oNS As Outlook.NameSpace 
Dim oMails As Outlook.items 
Dim oProp As Outlook.PropertyPage 
Dim mySelection As Word.Selection 
Dim strItem As String 
Dim omailitem As Variant 

Set oNS = Application.GetNamespace("MAPI") 
Set oFld = oNS.GetDefaultFolder(olFolderInbox) 
Set oMails = oFld.items 

For Each omailitem In oMails 
Set body = omailitem.body 
Set subject = omailitem.subject 
Dim pos As Integer 
Set pos = 0 
Dim copyText As String 
If InStr(omailitem.subject, "Your LogMeIn Security Code:") > 0 Then 
Set copystr = Mid(omailitem.body, pos + 28, 9) 
Dim dataToSave As New DataObject 
dataToSave.SetText copystr 
dataToSave.putinclipboard 

'MsgBox ("subject true") 
End If 

'MsgBox ("subject true") 
'If omailitem.subject.Find("Your LogMeIn Security Code:") Then 
'MsgBox ("subject true") 
'End If 

Next 

End Sub 

Private Sub Application_NewMail() 
Call LogMeIn 
End Sub 
+0

如果我的回答对你是正确的,请考虑接受它为其他人谁可能有这个问题;) – 2013-05-19 08:59:18

你尝试分配对象参考数据类型字符串是VBA中的数据类型,不是对象。关键字Set与对象一起使用。当它是数据类型时删除这个关键字,否则你会得到一个错误。

Dim body As String 
Dim subject As String 

Set body = omailitem.body 
Set subject = omailitem.subject 

Dim pos As Integer 
Set pos = 0 

[...]