(更新) - 此脚本当前运行的方式是当您处于活动的电子邮件文件夹(... @ .com / inbox)或(... @ .com /已删除)时,它运行该电子邮件文件夹上的脚本。因此,它会自动知道选择哪个电子邮件。我希望它始终能够发送电子邮件至email@thisplace.com。这是通过Outlook的VBA运行
所以我有这个简洁的VBA脚本,将我的收件箱文件夹从Outlook中选定的电子邮件地址导出到Microsoft Excel。我想要的是进一步自动化,以便将电子邮件地址硬编码到脚本中。基本上我不想选择一个电子邮件地址来运行脚本,我只想让脚本始终在一个特定的电子邮件地址上运行。这是我的代码:
Sub Extract()
On Error Resume Next
Set myOlApp = Outlook.Application
Set myfolder = myOlApp.ActiveExplorer.CurrentFolder
Set xlobj = CreateObject("excel.application.14")
Set xlobjWbk = xlobj.Workbooks.Open("c:\Users\(my username)\Desktop\Example.xlsx")
xlobj.Visible = True
xlobj.EnableEvents = True
'Set Heading
xlobj.Range("a" & 1).Value = "Recieved Time"
xlobj.Range("b" & 1).Value = "Sender Email"
xlobj.Range("c" & 1).Value = "Subject"
xlobj.Range("d" & 1).Value = "Sender Name"
xlobj.Range("e" & 1).Value = "Body"
For i = 1 To myfolder.Items.Count
Set myItem = myfolder.Items(i)
msgtext = myItem.body
xlobj.Range("a" & i + 1).Value = myItem.ReceivedTime
xlobj.Range("b" & i + 1).Value = myItem.SenderEmailAddress
xlobj.Range("C" & i + 1).Value = myItem.Subject
xlobj.Range("d" & i + 1).Value = myItem.SenderName
xlobj.Range("e" & i + 1).Value = msgtext
Next
End Sub
答案 0 :(得分:1)
据我所见,我认为你针对活动的outlook实例和选定的文件夹(myOlApp.ActiveExplorer.CurrentFolder)运行例程。
Outlook文件夹具有id属性。你可以用它来达到你的目标。 你可以用 - > ActiveExplorer.CurrentFolder.EntryID。 然后通过 - >使用它设置targetFolder = GetNamespace(“MAPI”)。GetFolderFromID(folderID)