下午好!Excel 2007 VBA在对象变量中使用字符串变量值
我环顾四周,但我找不到解决特定问题的任何问题,所以我会尽力解释。
规格:
Excel 2007中,VBA,Outlook 2007中
好了,所以我一直在返工一些脚本,我创建了我们在Excel/CMS的Avaya报告自动化。在过去的几年中,我一直是做报告的唯一人员,所以从来没有必要在其他人的计算机上进行设置。然而,事情正在改变,我正在更新脚本/训练其他人使用它们。目前,当我将脚本放在他们的计算机上时,我必须进入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返回的字符串是对象变量值所需的值,因此如何将字符串变量中的值转换为可用于这种方式的值?
在此先感谢。
看一看https://msdn.microsoft.com/en-us/library/office/ff868990.aspx 此外 - SaveSetting和GetSetting可能会帮助你。如果您使用注册表来存储您的设置,它将会存活。 – Sam
好主意!这些文章是2010年以上,但我会朝着这个方向看看你的其他建议。我正在吃午饭,所以我不能测试,但我会跟进并让你知道它是如何发展的。再次谢谢,山姆。 – Fata1Err0r
即使在旧版本中,它也应该可以正常工作。 – Sam