Ich habe zwei Spalten, die mit Formeln gefüllt werden müssen (mit 5k bis 10k Werte). Das sind einfache Formeln und sie funktionieren. Wenn Sie jedoch direkt in die Zellen schreiben, verlangsamt sich das Programm zu sehr. Daher schreibe ich die Formeln in ein Array und füge das Array dann in die Arbeitsmappe ein. Das funktioniert auch gut, es bewertet die Strings einfach nicht. Ich habe versucht, EVALUATE
ohne Erfolg zu verwenden. Wenn ich eine der kopierten Zellen auswähle, drücke F2 und Enter, sie funktionieren perfekt.Execute String Formeln aus Array
Codebeispiel:
ReDim Schreibblock(FirstRow To LastRowPos, 0 To 1)
For j = FirstRow To LastRowPos
Schreibblock(j, 0) = "=" & SteigungPos.Address & "*$B$" & j & "+" & NullwertPosTren.Address & ""
Schreibblock(j, 1) = "=ABS($A$" & j & "-$C$" & j & ")"
Next j
Range("C" & FirstRow & ":D" & LastRowPos).Formula = [Schreibblock]
und hier eine „Light-Version“ für das Lesen zu vereinfachen:
ReDim array(14 To 5000, 0 To 1)
For j = 14 To 5000
Array(j, 0) = "=$B$10*$B$14+$B$9" <- This is what I see, but w/o ""
Array(j, 1) = "=ABS($A$14-$C$14)" <- This is what I see, but w/o ""
Next j
Range("C14:D5000").Formula = [Array]
Es gibt keine Fehler, und es ist blitzschnell im Vergleich zu jeder Schleife in eine Zelle wirting. Ich würde jede Hilfe schätzen.
Carlos
Vielen Dank, das hat geholfen! Ich spreche noch nicht R1C1-Notation und die referenzierten Zellen sind umgezogen, aber ich werde versuchen, es herauszufinden. Diese Lösung funktionierte einwandfrei: 'Bereich (" C "& FirstRow &": C "& LastRowPos) .FormulaR1C1 =" = "& SteigungPos.Address (SteigungPos.Row, SteigungPos.Column, xlR1C1) &" * RC2 + "& NullwertPosTren.Address (NullwertPosTren.Row, NullwertPosTren.Column, xlR1C1) & "" 'Bereich (" D "& FirstRow &": D "& LastRowPos) .FormulaR1C1 =" = ABS (RC1 - RC3) " – elserra