我有一个VBA脚本,可以记录Outlook中选定文件夹中的未读电子邮件。目前,帐户和文件夹名称已硬编码到脚本中,但我想使其可以从excel表之一进行配置。
当前在此处设置变量
Set inboxselect = GetObject(, "Outlook.Application").GetNameSpace("MAPI").Folders("mailbox@companyname.com").Folders("Inbox").Folders("SubInbox")
理想情况下,我希望有一个名为Config的工作表,其数据如下:
Account: mailbox@companyname.com
Folder: Inbox
Subfolder: Subfolder
然后在VBA脚本中引用它,但是我在理解如何将单元格引用传递到变量中遇到困难。我尝试过:
inboxselect = GetObject(, "Outlook.Application").GetNameSpace("MAPI").Folders(Worksheets("Config").Range("B1")).Folders("Inbox").Folders("SubInbox")
但是它给出了类型不匹配的错误。
有人能提供有关该如何进行的信息吗?
答案 0 :(得分:1)
您要传递给GetObject()函数的变量是字符串。
您可以在Excel工作表上使用命名单元格,例如如果单元格A1包含“ mailbox@company.com”,则为该单元格帐户命名(使用名称管理器或仅覆盖窗口左上角的单元格引用。
然后在vba中,您可以使用引用您的命名单元格
Dim sAccount as String
sAccount = Range("Account").Value
Set inboxselect = GetObject(, "Outlook.Application").GetNameSpace("MAPI").Folders(sAccount).Folders("Inbox").Folders("SubInbox")
与其他变量类似。