Workbook_Open事件中清除的全局变量

问题描述 投票:0回答:1

我正在尝试设置在Workbook_Open()方法期间设置的一些默认全局范围。

我已经深入到失败的以下简单示例。

我有一个全局范围变量和Microsoft Excel Objects文件夹中“ ThisWorkbook”模块中的Workbook_Open()子项(请参见图片以供参考)。看起来如下:

 Public testCell As Range
 --------------------------------------------------------------------------
 Public Sub Workbook_Open()
 Set testCell = Range("F1")
 End Sub

然后我尝试在工作表模块子菜单中访问此分配的变量:

 Public sub mySub()
 testCell.Value = "Hello World!"
 End Sub

在尝试执行上述操作时,出现“ 424”对象必需错误。方法或语法上是否有任何明显的错误?

供参考,这是我的文件结构:

enter image description here

提前感谢。

excel vba global-variables
1个回答
0
投票

您必须将以下行插入代码模块Module1

 Public testCell As Range

之后,您的代码应该可以工作了。 @SJR提供的链接中对此原因进行了解释。正如他已经提到的,变量的公共声明可以放置在代码模块中,而不是工作簿或工作表对象中。

© www.soinside.com 2019 - 2024. All rights reserved.