Ich brauche eine Formel in Excel, um einen Wert von Zelle A1 nach B1 zu kopieren und anzuzeigen. Wenn der Wert in Zelle A1 von einem positiven Wert auf Null geändert wird, darf sich der Wert in Zelle B1 nicht ändern, er muss seinen vorherigen Wert behalten (der immer größer als Null ist). Der Wert besteht aus Zahlen.
Antwort1
Dies kann nicht allein mit Formeln erreicht werden. Aber mit dem folgenden VBA-Code, der auf demSelectionChange-Ereignis, Es klappt:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Const SourceCell = "$A$1"
Const TargetCell = "$A$2"
If Target.Address = SourceCell Then
If Range(SourceCell).Value > 0 Then
Range(TargetCell).Value = Range(SourceCell).Value
End If
End If
End Sub
Oder, wenn Sie mehr Quell- und Zielzellen haben möchten (wie später angefordert):
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim SourceCells(), TargetCells() As Variant
Dim i As Integer
' Make sure the cells are declared with $'s
' Make sure that the arrays contain the same number of elements
SourceCells = Array("$B$1", "$B$2", "$F$5")
TargetCells = Array("$A$1", "$A$2", "$H$12")
For i = 0 To UBound(SourceCells)
If Target.Address = SourceCells(i) Then
If Range(SourceCells(i)).Value > 0 Then
Range(TargetCells(i)).Value = Range(SourceCells(i)).Value
End If
End If
Next i
End Sub
Fügen Sie diesen Code in den VBA-Code desArbeitsblattwo Sie dies tun möchten. Befolgen Sie dazu diese Anweisungen:
- Klicken Sie in Excel bei geöffneter Arbeitsmappe auf
ALT
+F11
. Dadurch wird der VBA-Editor geöffnet. - Überprüfen Sie den „Projekt“-Baum auf der linken Seite und suchen Sie Ihre Excel-Arbeitsmappe und das Arbeitsblatt. Klicken Sie mit der rechten Maustaste (mit der Maus) auf das Arbeitsblatt und wählen Sie
View Code
. - Kopieren Sie den obigen Code und fügen Sie ihn in den Editor ein.
- Schließen Sie den VBA-Editor und alles sollte wie erwartet funktionieren.