Vba 将文件路径创建为要跨两个宏使用的全局变量
我有两个宏,宏1和宏2,它们都在一个excel文件中,只保存宏。宏1使用Vba 将文件路径创建为要跨两个宏使用的全局变量,vba,excel,Vba,Excel,我有两个宏,宏1和宏2,它们都在一个excel文件中,只保存宏。宏1使用FilePath1=Application.GetOpenFilename()打开文件1并进行一些计算。宏2将文件1中的计算与另一个文件(文件2)进行比较,该文件是使用FilePath2=Application.GetOpenFilename()打开的 我在引用宏2中的文件1时遇到问题,因为我需要激活文件1才能正确进行比较。最好将文件1的文件路径作为一个可以跨子例程访问的全局变量。我该怎么做?我试过了 Public File
FilePath1=Application.GetOpenFilename()
打开文件1并进行一些计算。宏2将文件1中的计算与另一个文件(文件2)进行比较,该文件是使用FilePath2=Application.GetOpenFilename()
打开的
我在引用宏2中的文件1时遇到问题,因为我需要激活文件1才能正确进行比较。最好将文件1的文件路径作为一个可以跨子例程访问的全局变量。我该怎么做?我试过了
Public FilePath1 As String
然后在后面的宏2中
Workbooks(FilePath1).Activate
您可以创建包含全局变量的模块,并将其包含在模块中:
Public Const FilePath1 As String = ".../..."
然后,您可以在代码中的任何位置使用
FilePath1
。如果您没有经过闪电般的快速响应时间,那么使用SaveSetting
和GetSetting
将数据存储在注册表的HKEY\U CURRENT\U USER\Software\VB和VBA程序设置
区域如何?但这将是持久性的,因此,除非您希望它永远存储在计算机上,否则您将希望在完成后擦除它。那么您是一次执行两个宏吗?如果是工作簿,则使用在调用第二个宏时提供的变量。像Macro2(wb作为工作簿)
@CLR-这个解决方案看起来很有趣,你能写吗?我可以@vityta,但老实说,快速搜索vba GetSetting
会告诉你如何使用这个命令。它是一行程序来存储它,一行程序来读取它。@CLD-谢谢,我觉得它有点复杂,比如创建新的注册表项等等。