Excel: Standardformel für jede Zelle in der Spalte festlegen

Excel: Standardformel für jede Zelle in der Spalte festlegen

Ich habe in jeder Zelle eine Spalte mit folgender Formel, die den Kilometerunterschied zwischen den beiden Zellen links von jeder Zelle berechnet:

=IF(AND(INDIRECT(ADDRESS(ROW(),COLUMN()-2))<>"", INDIRECT(ADDRESS(ROW(), COLUMN()-1))<>""), INDIRECT(ADDRESS(ROW(),COLUMN()-1))-INDIRECT(ADDRESS(ROW(),COLUMN()-2)), "")

leere Zelle ohne Formel, wenn ich eine neue Zeile einfüge

Mein Problem besteht darin, dass jedes Mal, wenn ich eine neue Zeile zwischen vorhandenen Daten einfüge, alle Zellen in dieser Zeile leer sind und ich diesen Code manuell in die leere Zelle einfügen muss.

Ist es mir möglich, jede Zelle einer Spalte (außer der Kopfzeile) auf eine bestimmte Formel einzustellen?selbst wenn ich eine neue Zeile einfüge?

Ich habe versucht, die Spalte als Tabelle festzulegen, und die Zellen wurden erfolgreich automatisch vervollständigt, wenn ich eine neue Zeile eingefügt habe. Ich habe jedoch noch andere Spalten, die ich ebenfalls automatisch vervollständigen möchte, und Excel lässt mich keine neue Zeile einfügen, wenn ich mehr als eine Spalte zu einer Tabelle mache.

Antwort1

Hier ist eine kleine Demo, die Sie an Ihr tatsächliches Schema anpassen können. In der Demo:

  1. Die Spalte von Interesse ist die SpalteB
  2. wenn mehr als eine Zeile eingefügt wird, passiert nichts
  3. wenn eine Zeile unterhalb des Datenbereichs eingefügt wird, passiert nichts
  4. wenn eine Zeile gelöscht wird, passiert nichts
  5. Wenn eine Zeile in der Mitte der Daten eingefügt wird, wird die Zelle in SpalteBwird entweder mit der obigen oder der folgenden Formel gefüllt
  6. Wenn sich über oder unter der neuen Zelle keine Formel befindet, passiert nichts

Fügen Sie das folgende Sub in den Codebereich des Arbeitsblatts ein:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Range, r1 As Range, r2 As Range

    Set r = Target
    If r.Rows.Count > 1 Then Exit Sub
    If r.Columns.Count <> Cells.Columns.Count Then Exit Sub
    If r.Row = 1 Then Exit Sub

    Set r1 = Intersect(r, Columns(2))
    If r1.Value <> "" Then Exit Sub

    If r1.Offset(-1, 0).HasFormula Then
        Application.EnableEvents = False
            r1.Offset(-1, 0).Copy r1
        Application.EnableEvents = True
        Exit Sub
    End If

    If r1.Offset(1, 0).HasFormula Then
        Application.EnableEvents = False
            r1.Offset(1, 0).Copy r1
        Application.EnableEvents = True
        Exit Sub
    End If

End Sub

Antwort2

Ich wollte nur dieses Video posten, aber offensichtlich muss ich mindestens 30 Zeichen eintippen.

Wie wäre es mit „So geht das ganz einfach.“ Mist, das sind erst 29.

Für alle, die es interessiert: Das Symbol "Bild einfügen" akzeptiert keine MOV-Dateien, aber es gibt eineganz nette Webseitedas Videodateien in animierte GIFs umwandelt.

Bildbeschreibung hier eingeben

verwandte Informationen