Excel-Formel für eine Zelle

Excel-Formel für eine Zelle

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.

verwandte Informationen