记住布尔信息

Remembering Boolean information

我有一个关于 VBA 的问题并记住一个布尔值 true/false。关闭或保存后不需要记住它,只需在打开时记住。但似乎并没有记住这个结果。

我有两个复选框,一个在单击一个时切换到另一个,但是因为一个正在加载大量数据(复选框 15),如果用户不小心单击了复选框 16,我不希望它这样做。

Public Sub CheckBox1_Click()
Dim ACTUALLOADED As Boolean

If Worksheets("Sheet1").Shapes("Check Box 15").OLEFormat.Object.Value = 1 Then
   Worksheets("Sheet1").Shapes("Check Box 16").OLEFormat.Object.Value = 0

   If ACTUALLOADED = False Then
   Sheet32.ListBox2_Empty
   Sheet32.ListBox1_Fill

    **DO SOME CODE**

    Sheet3.UpdateSOP
    ACTUALLOADED = True
     End If


Else
   Worksheets("Sheet1").Shapes("Check Box 16").OLEFormat.Object.Value = 1
   Sheet32.ListBox1_Empty
   Sheet32.ListBox2_Fill


End If
End Sub

第一次点击复选框时,ACTUALLOADED = False,因此它运行代码。

但是最后代码使 ACTUALLOADED = TRUE,但是当我再次单击同一个复选框时它忘记了它。

它好像不记得布尔值 TRUE/FALSE。我怎样才能做到这一点?

我认为使用 Public 可以解决您的问题。

从子中取出ACTUALLOADED并声明为public:

Public ACTUALLOADED As Boolean

您可以在定义变量时使用静态选项,而不是

Dim ACTUALLOADED As Boolean

你会用

Static ACTUALLOADED as Boolean

这将在调用之间保留 ACTUALLOADED 值。

但是就像@JLILI Amen 说的那样,您可以在模块级别而不是 Sub/Function 级别使用 public 减速。