gpt4 book ai didi

VBA - 全局变量超出范围

转载 作者:行者123 更新时间:2023-12-04 21:36:16 30 4
gpt4 key购买 nike

我遇到了全局变量超出范围的问题。我在“ThisWorkbook”中定义了一个公共(public)变量:

Public dict As Scripting.Dictionary

这在“Workbook_Open()”中被初始化
Set dict = New Scripting.Dictionary

初始化后,我运行一个 Sub(代码仍然位于“ThisWorkbook”中),用自定义类的 ID 和实例填充这个字典。

不过,我在其他模块中使用这个 dict 变量时遇到了麻烦。目标是构建工作表能够调用的许多公共(public)函数。这些函数在字典中的自定义类中操作/检索/等数据。

例如,这个测试子(ModuleXYZ 中的代码)抛出“对象变量或未设置 block 变量”
Private Sub TestSub()   
Dim x As Integer
x = ThisWorkbook.dict.Count
End Sub

这是我第一次开始这个编码项目时遇到的相同错误,当 dict 超出“ThisWorkbook”模块的范围时,我必须重做“Set dict = New Scripting.Dictionary”

我希望通过将 dict 设置为“ThisWorkbook”中的公共(public)变量,它会在此工作簿打开的整个过程中保持在范围内。

谢谢-KC

最佳答案

尝试在模块而不是工作簿中声明公共(public)变量。还要检查您是否没有声明它两次。约定是在一个通常称为 globals.bas 的模块中声明所有全局变量。

关于VBA - 全局变量超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37147882/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com