Excel 如何为所有工作簿公开变量

Excel 如何为所有工作簿公开变量,excel,vba,Excel,Vba,我将此代码放入模块页面 Option Explicit Dim correct As Boolean Sub setCorrect() correct = True End Sub Sub checkCorrectTrue() If correct Then MsgBox "OK" Else MsgBox "NO" End If End Sub 然后,当我从一个工作表中调用这两个sub时,我的变量cor

我将此代码放入模块页面

    Option Explicit
Dim correct As Boolean

Sub setCorrect()

    correct = True

End Sub

Sub checkCorrectTrue()

    If correct Then

        MsgBox "OK"

    Else

        MsgBox "NO"

    End If

End Sub
然后,当我从一个工作表中调用这两个sub时,我的变量correct永远不会切换为True

Private Sub CommandButton4_Click()

    Call setCorrect

    Call checkCorrectTrue

End Sub

因为您使用的是
Dim correct As Boolean
,所以它仅在该模块中可用。为了能够跨模块使用变量,您需要使用
Public

试用

Option Explicit
Public correct As Boolean

Sub setCorrect()

    correct = True

End Sub

Sub checkCorrectTrue()

    If correct Then

        MsgBox "OK"

    Else

        MsgBox "NO"

    End If

End Sub

因为您使用的是
Dim correct As Boolean
,所以它仅在该模块中可用。为了能够跨模块使用变量,您需要使用
Public

试用

Option Explicit
Public correct As Boolean

Sub setCorrect()

    correct = True

End Sub

Sub checkCorrectTrue()

    If correct Then

        MsgBox "OK"

    Else

        MsgBox "NO"

    End If

End Sub

单步执行时它有什么值?单步执行
CommandButton4\u Click()
并查看是否正确调用了
SetCorrect
。这在我的机器上运行得很好-你把
CommandButton4\u Click()
存储在哪里?@Tom你不就是讨厌它吗。@DarrenBartrup尝试帮助别人的乐趣当你一步一步的时候它有什么价值?一步一步的浏览你的
CommandButton4\u Click()
,看看
SetCorrect
是否被正确调用。这在我的机器上运行得很好-你在哪里存储
命令按钮4\u Click()
?@Tom你不就是讨厌它吗?DarrenBartrup Cook尝试帮助的乐趣