Ich habe ein kleines Makro erstellt, um die Anzahl der eindeutigen Werte zurückzugeben und es in der Statusleiste von Excel anzuzeigen, wenn ein Bereich ausgewählt ist. Dies funktioniert auf Dokumentebene. Das Ereignis SelectionChange
wird jedoch nicht gestartet, wenn ich versuche, es auf Anwendungsebene auszuführen. Folgendes habe ich.Warum funktioniert das SelectionChange-Ereignis auf Anwendungsebene nicht?
Klassenmodul '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
Diesearbeitsmappe
Option Explicit
Dim myobject As New ExcelEventCapture
Sub Workbook_Open()
Set myobject.ExcelApp = Application
End Sub
Was bin ich? Danke