gpt4 book ai didi

vba - 为什么应用程序级别的 SelectionChange 事件不起作用?

转载 作者:行者123 更新时间:2023-12-03 01:54:24 26 4
gpt4 key购买 nike

我创建了一个小宏来返回唯一值的数量,并在选择范围时将其显示在 Excel 的状态栏中。这在文档级别工作得很好。但是,当我尝试在应用程序级别运行 SelectionChange 事件时,该事件并未启动。以下是我所拥有的。

类模块“ExcelEventCapture”

Option Explicit

Public WithEvents ExcelApp As Application

Private Sub ExcelApp_SelectionChange(ByVal Target As Range)
If TypeName(Target) = "Range" Then
Application.StatusBar = "Unique Count: " & CountUnique(Target)
End If
End Sub

Private Function CountUnique(rng As Range) As Long
Dim dict As Dictionary
Dim cell As Range
Set dict = New Dictionary
For Each cell In rng.Cells
If cell.Value2 <> 0 Then
If Not dict.Exists(cell.Value) Then
dict.Add cell.Value, 0
End If
End If
Next
CountUnique = dict.Count
End Function

本工作簿

Option Explicit

Dim myobject As New ExcelEventCapture

Sub Workbook_Open()
Set myobject.ExcelApp = Application
End Sub

我错过了什么?谢谢

最佳答案

Application 中不存在

SelectionChange 事件类(class)。

您可以使用SheetSelectionChange事件,无需检查 Target 类名。

Private Sub ExcelApp_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)    
Application.StatusBar = "Unique Count: " & CountUnique(Target)
End Sub

关于vba - 为什么应用程序级别的 SelectionChange 事件不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38065835/

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