首页 文章

Excel 2007 VBA在对象变量中使用字符串变量值

提问于
浏览
0

大家下午好!

我环顾四周,但是我找不到任何可以解决我特定问题的事情,所以我会尽力解释 .

Specs:

Excel 2007,VBA,Outlook 2007

好的,所以我一直在修改我创建的一些脚本,以便在Excel / Avaya CMS中自动化我们的报告 . 在过去的几年里,我一直是唯一一个做报告的人,因此没有必要在其他任何人的计算机上进行设置 . 然而,事情正在发生变化,我正在更新脚本/培训其他人使用它们 . 目前,当我将脚本放在他们的计算机上时,我必须进入VBA代码并手动设置每个引用它们自己的相对文件夹路径/ outlook文件夹路径 . 无痛,除非我对脚本进行任何类型的更改,并且必须在每台计算机上再次完成整个过程 .

So this was my solution: 在自动报告工作簿上创建配置工作表,在该配置工作表上存储文件路径,并在代码中使用变量来引用配置工作表 . 这应该像在新计算机上从配置设置变量一样简单,而不必触及任何代码行 .

Problem: 午夜时分,有数据通过电子邮件发送给我们 . 我们在这个办公室使用Outlook,所以我_____838401_将Outlook文件夹的路径作为字符串值返回 . 但是,outlook文件夹变量属于Object类型,因此它不具有't allow me to use the string variable as it'的值,即使字符串本身是对象所需的实际值(只是不作为字符串) . 那么是否可以将字符串值转换为可以在Object变量中使用的值?

Worksheet Config Cell Value (B5)- The String Value

outNamespace.Folders("Mailbox - Some Guy").Folders("Reports").Folders("ImportantData")

Code:

'Config tab

Dim serverConfig As Worksheet
Set serverConfig = Sheets("CONFIG")

Dim dirOutlookData As String    
dirOutlookData = serverConfig.Range("B5").Value

Dim outFolder As Object
Set outFolder = dirOutlookData

有任何想法吗?由于为dirOutlookData返回的字符串是对象变量值所需的值,如何从字符串变量中转换值以便以这种方式使用它?

提前致谢 .

1 回答

  • 1

    似乎太复杂的解决方案 . 没有人可以分享他们的VBA .

    在提供的示例中

    outNamespace.Folders("Mailbox - Some Guy").Folders("Reports").Folders("ImportantData"
    

    你可以直接在VBA中使用它

    Set mailboxFolder = outNamespace.GetDefaultFolder(olFolderInbox).Parent
    

    您现在以通用方式拥有“Mailbox - Some Guy”文件夹,无需指定“Some Guy” .

    Set myFolder = mailboxFolder.Folders("Reports").Folders("ImportantData")
    

相关问题