Excel VBA – 多页更改但只有一次

我在Main_Window.MultiPage2.Value = 2下的Multipage中有一个flexgrid,这个flexgrid有8000行,我不希望这些加载,除非这个页面实际上被点击了。 我所拥有的代码就是这样做的,但是问题在于它每次都会加载,而不是一次。 有没有办法让第一次改变加载,然后就是这样?

Private Sub MultiPage2_Change() If Main_Window.MultiPage2.Value = 2 Then Call form_segment_carrier_auto End If End Sub 

在form_segment_carrier_auto中是一个填充flexgrid的模块。

如果我正确地理解了你,你可以声明一个公共布尔variables,例如:

 Public ChangedOnce As Boolean 

这应该在一些标准的代码模块中。

然后将您的事件处理程序更改为

 Private Sub MultiPage2_Change() If ChangedOnce Then Exit Sub ChangedOnce = True If Main_Window.MultiPage2.Value = 2 Then Call form_segment_carrier_auto End If End Sub 

如果事件发生在多个场合,事件处理程序仍然会被多次调用,但是只有第一次调用才会执行任何操作。