gpt4 book ai didi

excel - Application.EnableEvents = False 不工作

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

我似乎不明白 Excel 2007 的奇怪行为,经过十几个解决方案,我来向您寻求帮助。

我有办公室2007。

这是我的类(class)模块代码:

Public WithEvents App As Application
Private Sub App_SheetChange(ByVal Sh As Object, ByVal Target As Range)
MsgBox "event din app"
End Sub

这是我的 InitializeAppObject 模块:
Dim X As New EventClassModule
Sub InitializeApp()
Set X.App = Application

MsgBox "am facut setarea"

End Sub

这是我的第一张代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Application.Intersect(Target, Me.Range("a1:c10")) Is Nothing _
Then
Application.EnableEvents = False
MsgBox "suntem in range"
Application.EnableEvents = True
Else
MsgBox "nu suntem in range"
End If
End Sub

在更改网格上的任何值之前,我执行 InitializeApp() 过程。

据我了解,应该首先触发工作表事件,然后是工作簿事件,然后是应用程序事件。然而,这种情况并非如此。它首先启动工作簿一个,应用程序一个,最后是工作表一个。
  • Excel 出现故障还是我弄错了?
  • 我怎样才能只执行工作表事件?原因显然 Application.EnableEvents = false 并没有阻止上游触发事件。

  • 非常感谢您的所有帮助!

    亲切的问候,
    拉杜

    最佳答案

    我认为问题可能是您在工作表模块中使用了 SelectionChange 事件。你对事件的顺序是正确的。事情是这样的——你的事件有一个 *

    Worksheet_Change
    Workbook_SheetChange*
    Application_SheetChange*

    然后假设在您输入某些内容后选择移动
    Worksheet_SelectionChange*
    Workbook_SheetSelectionChange
    Application_SheetSelectionChange

    您的代码中没有任何内容触发事件,因此在 EnableEvents 之间放置消息框不会达到预期的结果。在第一个事件代码运行时,所有事件都已排队。如果相反,你有
    Private Sub App_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Application.EnableEvents = False
    Sh.Range("a1").Value = 1
    Application.EnableEvents = True
    End Sub

    那么改变 A1 值的代码就不会触发任何事件。如果您只想运行 Worksheet_Change 事件,则应删除其他事件代码。好吧,这可能是有充分理由的。但是,无论运行时的逻辑是什么,都需要在过程中包含哪些事件代码。例如,如果您只想在特定工作表名称“Master”上运行 Worksheet_Change 事件,您可以像这样设置它
    Private Sub App_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Sh.Name <> "Master" Then
    MsgBox "event din app"
    End If
    End Sub

    Worksheet_Change 事件代码将位于主工作表的类模块中,因此它只会响应该页面上的事件。

    关于excel - Application.EnableEvents = False 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5169451/

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