在Workbook_Open事件中清除了全局变量

时间:2019-11-21 12:00:47

标签: excel vba global-variables

我正在尝试设置在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

谢谢。

1 个答案:

答案 0 :(得分:1)

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

 Public testCell As Range

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