AW: Formel mit VBA in Bereich schreiben
31.12.2015 14:38:24
Gerd L
Hallo Stefan,
so wäre keine Fehlermeldung aufgetreten.
Sub A()
Dim lngZeile As Long
Dim Z As Long
Dim anzZeilen As Long
anzZeilen = 4
For lngZeile = 2 To anzZeilen
If Cells(lngZeile, 2).Value <> "" Then
Range("A1").Select
ActiveCell.FormulaR1C1 = "1"
Range("A1:A" & lngZeile).Formula = "=A" & Z + 1
Z = Z + 1
Cells(lngZeile, 1) = Z
End If
Next
End Sub
Entgegen deiner Aussage hattest du die Zählererhöhung Z= Z + 1 auskommentiert, also stillgelegt.
Die Variable anzZeilen war im Code weder deklariert noch hat sie einen Wert erhalten.
Wie bereits ausgeführt, fehlte vor ".Formula" bei Range("A1:A" die zweite Zeilennummer, als Zahl oder Variable. Die dahinter angegebene Formel war ebenfalls nicht syntaktisch korrekt.
Das Ganze (so) in eine Schleife zu stellen, ist schon überflüssig, zumal, wenn am Schluss die Formel mit einem Wert per Code noch überschrieben wird.
Da hilft es auch nicht weiter, wenn ..Formula= "1" von Excel automatisch ausgebessert wird u. es natürlich widersinnig ist, wie vorgeschlagen die Formel bis zur allerletzten Zeile der Tabelle runterzuschreiben.
Vermutlich suchst du sowas. Die sich aus deiner Tabelle ergebenden Besonderheiten zu Struktur u. Ablauf müsstet du halt ggf. noch darlegen.
Sub c()
If Cells(1, 1) = "" Then Cells(1, 1) = 1
Range(Cells(2, 2), Cells(Rows.Count, 2).End(xlUp)).Offset(, -1).FormulaR1C1 = "=R[-1]C+1"
End Sub
Guten Rutsch
Gerd