excel - 如何在不使用代号作为限定符的情况下访问另一个(引用的)VBA 项目的公共变量
问题描述
我尝试访问其他 Excel 文件(被引用)中的公共变量,而不对 excel 文件/VBA 项目进行硬编码,并且需要帮助来实现这一点。我需要资格,因为可以打开具有相似变量的多个文件。
假设您有一个Test(Test.xlsb)
定义了公共变量的 VBA 项目myVar
。
在另一个 VBA 项目(它有一个引用Test
)中,我可以访问这个变量,例如
debug.print Test.myVar
但是,如果不使用 qualifier ,我就无法达到同样的效果Test
。我尝试使用workBook
,VBProject
和Reference
作为限定符,但这些选项都不起作用。我也无法将代号寻址的对象分配给变量。该代码set myObj = Test
会引发编译器错误,但set mySheet = Test.Sheet1
确实有效。
任何帮助表示赞赏。
解决方案
看来您需要在模块之外定义公共变量,以便放置在任何函数之外的工作表对象中。
此处提出了一个类似的问题Using Excel VBA variable for multiple workbooks
因此,如果您将Public myVar as String
(假设类型为字符串)放在外部工作簿中ThisWorkbook
,并将您的对象设置为您一直在做的工作簿,那么您可以实现此目的:
Dim wb As Workbook
Set wb = Workbooks("Test.xlsb")
MsgBox wb.myVar
推荐阅读
- r - 如何在R中存储嵌套循环的结果
- c - VESA 图形页面在保护模式下翻转
- c++ - c ++:“无法在动态链接库中找到过程入口点_ZNSt7__cxx1112basic_stringlcSt11char_traitslcESalcEEC1EPKcRKS3_”
- sql - 当用户在 txtbox 中输入他们的用户名时,软件崩溃
- python - python3在类型注释上引发属性错误
- python - 如何获取与函数签名对应的 TypedDict?
- javascript - ASP.NET MVC 应用程序无法从 cshtml 文件调用 JS 或 CSS 文件
- javascript - 将地图项传递给函数始终只获取第一项
- javascript - 根据对象的数量属性相乘
- asp.net-mvc - C# mvc DropDownList 验证