Public 返回代码时值未更新 (VBA)

Public value does not updated when going back to code (VBA)

Public 当窗体关闭并且代码导航回宏时,变量没有更新。

我创建的表单只有两个按钮 "Yes" 和 "No"。当用户单击 "No" 时,我想将一个变量设置为 false,如果是 "Yes",它将为 true。

这是工作表代码

Public bool As Boolean

Sub test2()
    Claims.Show

    If bool = True Then
        Range("A1") = "Yes"
    ElseIf bool = False Then
        Range("A1") = "No"
    Else
        Range("A1") = "Nothing"
    End If
End Sub

在我想要一个值的表格下方

Priate Sub No_Click()
    bool = False
    Unload Me
End Sub

Private Sub Yes_Click()    
    bool = True
    Unload Me
End Sub
  1. 在不在 ThisWorkbook 的模块中声明变量。

    Public bool As Boolean 'in a module
    
  2. 程序Test2则可以在ThisWorkbook:

    Sub test2()
        Claims.Show
    
        If bool Then
            Range("A1") = "Yes"
        Else
            Range("A1") = "No"
        End If
    End Sub
    

    注意bool只能是TrueFalse没有3ʳᵈ选项。所以它可以减少。另请注意,您应该为范围指定 sheet,例如 ThisWorkbook.Worksheets("Sheet1").Range("A1") = "Yes",否则 Excel 使用哪个 sheet 曾经处于活动状态。

  3. 你想把按钮放在什么地方的程序

    Private Sub No_Click()
        bool = False
        Unload Me
    End Sub
    
    Private Sub Yes_Click()    
        bool = True
        Unload Me
    End Sub
    

我建议始终激活 Option Explicit:在 VBA 编辑器中转到 工具选项Require Variable Declaration。那会产生一个警告来防止这个问题。