Wie kann ich die R- und C-Werte (Row & Column) einer Zelle, die gerade ein calculate-Ereignis ausgelöst hat, in Variablen schreiben.
Weiß jemand bescheid?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dd As Range, c As Range
If Target.Count > 1 Then Exit Sub
On Error GoTo errH
Set dd = Target.DirectDependents
For Each c In dd.Cells
MsgBox c.Address(0, 0)
Next
Exit Sub
errH:
End Sub
Um die R- und C-Werte (Row und Column) einer Zelle zu ermitteln, die ein Calculate-Ereignis in Excel auslöst, kannst Du den folgenden VBA-Code verwenden:
ALT + F11
, um den VBA-Editor zu öffnen.Private Sub Worksheet_Calculate()
Dim cell As Range
Dim dependentCells As Range
Set dependentCells = Me.Cells.SpecialCells(xlCellTypeFormulas)
For Each cell In dependentCells
If cell.HasFormula Then
MsgBox "Die Zelle " & cell.Address & " wurde neu berechnet!"
End If
Next cell
End Sub
Dieser Code nutzt das Worksheet_Calculate
-Ereignis, um alle abhängigen Zellen zu ermitteln. Beachte, dass dies in Excel 2010 oder später ausgeführt werden sollte.
Fehler: Das Calculate-Ereignis wird nicht ausgelöst.
Formeln > Berechnungsoptionen > Automatisch
).Fehler: Keine Meldung wird angezeigt.
Eine alternative Methode, um das Verhalten von target.calculate
zu nutzen, wäre die Verwendung des Worksheet_Change
-Ereignisses:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Columns("B")) Is Nothing Then
MsgBox "Änderung in Zelle " & Target.Address
End If
End Sub
Dieser Code zeigt eine MessageBox an, wenn eine Änderung in Spalte B erfolgt. Es ist eine einfache Möglichkeit, um zu erfahren, welche Zelle eine Änderung ausgelöst hat und damit das Calculate
-Ereignis beeinflusst.
Beispiel für die Verwendung von Worksheet_Calculate
:
=B1*2
. Ändere den Wert in B1 und beobachte, wie das Calculate-Ereignis ausgelöst wird und die Nachricht angezeigt wird.Beispiel für die Verwendung von Worksheet_Change
:
Application.CalculationState
, um den Status der Berechnung zu überprüfen, bevor Du das Calculate-Ereignis verarbeitest.1. Kann ich auch mehrere Zellen gleichzeitig überwachen?
Ja, Du kannst das Target
-Objekt im Worksheet_Change
-Ereignis verwenden, um Änderungen in mehreren Zellen zu erfassen.
2. Wie kann ich sicherstellen, dass der Code nur in bestimmten Zellen ausgeführt wird?
Verwende die Intersect
-Funktion, um sicherzustellen, dass der Code nur für spezifische Zellen oder Bereiche ausgeführt wird.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen