gpt4 book ai didi

vba - 工作表和模块之间的变量不合作

转载 作者:行者123 更新时间:2023-12-04 20:40:55 24 4
gpt4 key购买 nike

我的 Module1 宏看不到工作表代码中所述变量的值。知道为什么吗?一切都是公开的。

在我的工作表中,我有这个:

Public oldVal As Variant

Public Sub Worksheet_SelectionChange(ByVal Target As Range)
oldVal = Target.Value
End Sub

在 Module1 中,我有一个连接到按钮的宏,它应该(出于测试目的)只打印 oldVal,但它不起作用。消息框是空的。
Public Sub button_Click1()
MsgBox oldVal
End Sub

知道为什么它不从工作表中获取变量“OldVal”的值吗?

谢谢。

最佳答案

您应该在常规模块中声明您的公共(public)变量以避免这种情况。

因为 Sheet 的模块 ThisSession, ThisWorkbook, ... 是类的模块,所以您声明的变量被视为该类/对象的属性。

您的常规模块代码

Public oldVal As Variant

Public Sub button_Click1()
MsgBox oldVal
End Sub

您的工作表模块代码
Public Sub Worksheet_SelectionChange(ByVal Target As Range)
oldVal = Target.Value
End Sub

关于vba - 工作表和模块之间的变量不合作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33798766/

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