У меня есть две колонки, которые должны быть заполнены формулами (с значениями 5k - 10k). Это простые формулы, и они работают. Но запись непосредственно в ячейки замедляет программу слишком сильно, поэтому я пишу формулы в массив, а затем вставляя массив в книгу. Это тоже прекрасно работает, он просто не оценивает строки. Я пробовал использовать EVALUATE
без успеха. Если я выберу любую скопированную ячейку, нажмите F2 и Enter, они будут работать отлично.Выполнять строковые формулы из массива
Пример кода:
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]
и здесь «облегченный вариант» для более легкого чтения:
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]
Там нет ошибок, и это молниеносный по сравнению с wirting каждый цикл в клетку. Буду признателен за любую помощь.
Carlos
спасибо, что помог! Я еще не знаю нотации R1C1, и ссылки на ячейки переместились, но я попытаюсь понять это. Это решение отлично работает: 'Range (« C »& FirstRow &«: C »& LastRowPos) .FormulaR1C1 =" = "& SteigungPos.Address (SteigungPos.Row, SteigungPos.Column, xlR1C1) &" * RC2 + "& NullwertPosTren.Address (NullwertPosTren.Row, NullwertPosTren.Column, xlR1C1) & "" ' ' Диапазон ("D" и FirstRow & ": D" и LastRowPos) .FormulaR1C1 = "= ABS (RC1 - RC3)" ' – elserra