下午好![/ p>
我环顾四周,但我找不到任何可以解决我特定问题的事情,所以我会尽力解释。
功能
Excel 2007,VBA,Outlook 2007
好的,所以我一直在修改我创建的一些脚本,以便在Excel / Avaya CMS中自动化我们的报告。在过去的几年里,我一直是做报告的唯一人,因此没有必要在其他人的计算机上进行设置。但是,事情正在发生变化,我正在更新脚本/培训其他人使用它们。目前,当我将脚本放在他们的计算机上时,我必须进入VBA代码并手动设置每个引用它们自己的相对文件夹路径/ outlook文件夹路径。无痛,除非我对脚本进行任何类型的更改,并且必须在每台计算机上再次完成整个过程。
所以这是我的解决方案:在自动报告工作簿上创建配置工作表,在该配置工作表上存储文件路径,在代码中只使用变量来引用配置工作表。这应该像在新计算机上从配置设置变量一样简单,而不必触及任何代码行。
问题:午夜时,有数据通过电子邮件发送给我们。我们在这个办公室使用Outlook,所以我只是将它转到脚本中指定的文件夹,下载附件,然后使用下载的数据进行报告。由于每个人都设置了自己的Outlook文件夹,因此每个用户的outlook内部路径都不同。由于VBA正在访问工作表以从单元格中获取配置信息,因此它将Outlook文件夹的路径作为字符串值返回。但是,outlook文件夹变量属于Object类型,因此它不允许我使用字符串变量作为它的值,即使字符串本身是对象需要的实际值(只是不是一个字符串)。那么是否可以将字符串值转换为可以在Object变量中使用的值?
工作表配置单元格值(B5) - 字符串值
outNamespace.Folders("Mailbox - Some Guy").Folders("Reports").Folders("ImportantData")
代码:
'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返回的字符串是对象变量值所需的值,我如何转换字符串变量中的值以便以这种方式使用它?
提前致谢。
答案 0 :(得分:1)
似乎过于复杂的解决方案。没有人可以分享他们的VBA。
在提供的示例中
outNamespace.Folders("Mailbox - Some Guy").Folders("Reports").Folders("ImportantData"
你可以直接在VBA中使用它
Set mailboxFolder = outNamespace.GetDefaultFolder(olFolderInbox).Parent
您现在拥有通用方式的“邮箱 - 一些家伙”文件夹,无需指定“有些人”。
Set myFolder = mailboxFolder.Folders("Reports").Folders("ImportantData")