Ich versuche, den Wert der Zielzelle mit VBA-Makro zu aktualisieren, wenn es in bestimmten Bereich existiert. Ich möchte seinen Wert aktualisieren, indem ich einen String mit seinem Wert verkette. Wenn zum Beispiel 250 in die Zielzelle schreibt, möchte ich "XYZ-250" in die Zielzelle zurückschreiben. Unten ist der Code:Aktualisieren Wert der Zielzelle in Excel VBA
Dim oldCellAddress As String
Dim oldCellValue As String
Private Sub Worksheet_Change(ByVal Target As Range)
oldCellValue = 0
If Not Intersect(Target, Range("E10:E500")) Is Nothing Then
oldCellValue = Target.Value
Sheet1.Cells(Target.Row, Target.Column).Value = "AST-" & oldCellValue
End If
End Sub
Interessanterweise, wenn ich den Wert einer Zelle innerhalb des Bereichs (E10 bis E500) ändern wird das messagebox unendlich Mal angezeigt und hält die Excel und ich habe es wieder neu zu starten.
Vielen Dank im Voraus
Ist es schneiden nicht (Target.Address , Bereich ("E10: E500))? Entschuldigung, nur mein erstes Gefühl. Seltsam ein Meldungsfeld würde erscheinen ... – Lowpar
@Lowpar Meine Schätzung ist, dass das OP eine MsgBox verwendet, um zu verfolgen, ob die Funktion aufgerufen wurde, aber diese Zeile in der Frage nicht bekannt gab. (Aber ich könnte mich irren.) – YowE3K
@ YowE3K Ja, ich habe gerade festgestellt, dass die Endlosschleife durch die Zelle selbst verursacht wurde, die sich verändert, was eine rekursive Funktion verursacht, die die gleiche Aktion wiederholt. Tolle Lösung, um Ereignisse zu deaktivieren! – Lowpar