Скопируйте формулу в Excel, как это делается, перетащив ячейку в другую - PullRequest
0 голосов
/ 17 апреля 2020
For i = 1 To staffelRange.Rows.Count
   .DataBodyRange.Cells(i, countHeader).Formula = staffelRange.Cells(i).Formula
Next

код работает как задумано и копирует формулы из моего диапазона в нужный диапазон в моей таблице. сначала к формуле формула всегда ссылается на заголовок столбца и ячейку слева от него. Если я теперь копирую код с моей функцией из столбца 1, например, в столбец 4, формула по-прежнему ссылается на столбец 1 вместо столбца 4. но если я скопирую его, перетащив формулу в другую ячейку, формула адаптируется. Как я могу добиться такой корректировки в моем коде? Формула: = $ G39 * (1 + SVERWEIS (Stückpreise_neu_19 [[# Kopfzeilen]; [Staffel1]]; Rabattstaffel_new_24; 2; FALSCH))

1 Ответ

0 голосов
/ 19 апреля 2020

Если формула всегда одна и та же, за исключением ссылки на ячейку, вы можете просто записать формулу на лист в виде строкового значения с переменной для правильного номера строки.

Что-то вроде ...

For i = 1 To staffelRange.Rows.Count
   .DataBodyRange.Cells(i, countHeader).Formula = "=$G" & i & "*1+SVERWEIS(Stückpreise_neu_19[[#Kopfzeilen];Staffel1]];Rabattstaffel_new_24;2;FALSCH))"
Next

Предполагается, что ваша переменная i представляет правильный номер строки для формулы (что, на мой взгляд, правильно).

...