Excel 2007 VBA在对象variables中使用stringvariables值

下午好!

我环顾四周,但是我没有find解决特定问题的任何事情,所以我会尽力解释。

眼镜:

Excel 2007,VBA,Outlook 2007

好的,我一直在修改我创build的一些脚本,以便在Excel / Avaya CMS中自动生成报告。 在过去的几年中,我一直是做报告的唯一的人,所以没有必要把事情放在别人的电脑上。 但是,事情正在改变,我正在更新脚本/培训其他人使用它们。 目前,当我把脚本放在他们的计算机上时,我必须进入VBA代码并手动设置每个引用到他们自己的相对文件夹path/ outlook文件夹path。 除非我对脚本进行任何types的更改,并且必须在每台计算机上重新执行整个过程,否则无痛苦的是不够的。

所以这是我的解决scheme:在自动报告工作簿上创buildconfiguration工作表,在该configuration工作表上存储文件path,并在代码中简单地使用variables来引用configuration工作表。 这应该使得在新计算机上从configuration中设置variables一次而不必触摸任何代码行就变得容易了。

问题:午夜有数据从另一个办公室通过电子邮件发送给我们。 我们在这个办公室使用Outlook,所以我只是一直到脚本中指定的文件夹,下载附件,然后使用下载的数据作为报告。 由于每个人都设置了自己的Outlook文件夹,因此每个用户的Outlook内部path都不相同。 由于VBA正在访问工作表以从单元获取configuration信息,因此它将Outlook文件夹的path作为string值返回。 但是,outlook文件夹variables是Objecttypes的,所以它不允许我使用stringvariables作为值,即使string本身是对象所需的实际值(而不是string)。 那么是否可以将string值转换为可以在Objectvariables中使用的值?

工作表configuration单元格值(B5) – string值

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返回的string是对象variables值所需的值,因此如何将stringvariables中的值转换为可以这样使用的值?

提前致谢。

似乎太复杂的解决scheme。 没有人可以分享他们的VBA。

在提供的例子中

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

你可以直接在VBA中使用它

 Set mailboxFolder = outNamespace.GetDefaultFolder(olFolderInbox).Parent 

你现在有一个通用的方式,不需要指定“某人”的“邮箱 – 一些人”文件夹。

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