首页 文章

将对象变量从单元格传递到(Excel)VBA

提问于
浏览
0

我有一个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")

但它给出了类型错误匹配错误 .

是否有人能够提供有关如何做到这一点的任何信息?

1 回答

  • 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")
    

    同样适用于其他变量 .

相关问题