2016-06-29 9 views
0

Ich habe ein Benutzerformular zu einer Excel-Tabelle hinzugefügt, die eine Frage an den Benutzer stellt und sie einer neuen Zeile in einer Tabelle hinzufügt.Excel-Formel automatisch hinzufügen, wenn neue Zeilen hinzugefügt werden

Jede Spalte in der Tabelle hat eine eigene Formel, die basierend auf Benutzereingaben berechnet.

Gibt es einen Weg, dass ich Excel haben kann automatisch "ziehen" die Formel, die zusammenhängend in der Spalte in die hinzugefügte Zeile?

Ich stelle mir vor, dass ich es im Code für mein Benutzerformular ändern kann, wenn eine Person also "Submit" drückt, werden alle Zellen aktualisiert. Aber ich weiß nur, wie man den Wert aktualisiert, keine Formel an Ort und Stelle hinzufügen. Hier ist ein Teil des Codes ich habe:

.Cells(iRow, 6).Value = Me.TextBox1.Value 
    .Cells(iRow, 7).Value = Me.TextBox2.Value 
    .Cells(iRow, 8).Value = Me.TextBox3.Value 
    .Cells(iRow, 9).Value = Me.TextBox4.Value 
    .Cells(iRow, 10).Value = Me.TextBox5.Value 
    .Cells(iRow, 11).Value = Me.TextBox6.Value 
    .Cells(iRow, 12).Value = Me.TextBox7.Value 
    .Cells(iRow, 13).Value = Me.TextBox8.Value 
    .Cells(iRow, 14).Value = Me.TextBox9.Value 
    .Cells(iRow, 15).Value = Me.TextBox10.Value 

Ist es möglich, etwas hinzufügen die Zelle 1-4 Werte ändern? Vielleicht so:

.Cells(iRow, 1).Value = *insert formula here* 

Antwort

1

können Sie den Bereich verwenden relativ Formel Eigenschaft .FormulaR1C1 Formel Referenzen machen anpassen relativ:

.Cells(iRow, 1).FormulaR1C1 = .Cells(iRow - 1, 1).FormulaR1C1 

Sie können auch die regulären .Formula Eigenschaften stattdessen verwenden, wenn Sie genau die gleiche Formel möchten, ohne relative Bezüge Aktualisierung.

Sie können es auch tun, für alle vier Spalten auf einmal:

.Cells(iRow, 1).Resize(, 4).FormulaR1C1 = .Cells(iRow - 1, 1).Resize(, 4).FormulaR1C1 
+0

Das ist genau das, was ich brauche! Vielen Dank – Megan

0

Wenn die Formel bereits in der Zelle oben ist, können Sie die unten tun:

.Range(.Cells(iRow - 1, 1).Address,.Cells(iRow, 1).Address).Filldown 

Dies wird die Formel aus der Zelle oben auf die betreffende Zelle füllen.

Verwandte Themen