Я пытался вставить формулу непосредственно в ячейку и привязать ее к ячейкам вокруг нее на основе того, где она размещена (R1C1). Я включил функцию макроса записи в excel и отредактировал ячейку с требуемой формулой и нажал enter. Excel предоставил мне следующую функцию. Нечетная часть этого вопроса заключается в том, что это точная формула excel дала мне, и когда я пытаюсь запустить эту функцию, она выдает ошибку «ошибка времени выполнения 1004»: ошибка, определяемая приложением или объектом. Фон на use: сама функция предназначена только для бюджета, который я создаю, и он использует ячейку для двух столбцов для принятия решения о продолжении нумерации или создании подмножества числа выше (TR - обозначение для общего запроса, поэтому все, что не является ТР, является подмножеством общего запроса, и будет обозначен последний известный номер & «A», «B», и т.д.)Ручная запись Excel Macro error - вставить формулу в ячейку
ActiveCell.FormulaR1C1 = _
"=IF(RC[2]=""TR"",IF(R[-1]C[2]<>""TR"",IF(R[-2]C[2]<>""TR"",IF(R[-3]C[2]<>""TR"",IF(R[-4]C[2]<>""TR"",IF(R[-5]C[2]<>""TR"",IF(R[-6]C[2]<>""TR"",IF(R[-7]C[2]<>""TR"",""add more"",R[-7]C+1),R[-6]C+1),R[-5]C+1),R[-4]C+1),R[-3]C+1),R[-2]C+1),R[-1]C+1), IF(R[-1]C[2]=""TR"",IF(RC[2]<>""TR"",R[-1]C&""A"",R[-1]C+1),IF(R[-2]C[2]=""TR"",R[-2]C&""B"",IF(R[-3]C[2]=""TR"",R[-3]C&" & "(R[-4]C[2]=""TR"",R[-4]C&""D"",IF(R[-5]C[2]=""TR"",R[-5]C&""E"",IF(R[-6]C[2]=""TR"",R[-6]C&""F"",IF(R[-7]C[2]=""TR"",R[-7]C&""G"",""""))))))))"
Любая помощь на этом будет понятно, благодаря
Редактировать: Я на работе, и я не могу ответить в строке, поэтому я решил попробовать здесь: Ниже записанный макрос как есть.
Sub Macro7()
'
' Macro7 Macro
'
'
ActiveCell.FormulaR1C1 = _
"=IF(RC[2]="""","""",IF(RC[2]=""TR"",IF(R[-1]C[2]<>""TR"",IF(R[-2]C[2]<>""TR"",IF(R[-3]C[2]<>""TR"",IF(R[-4]C[2]<>""TR"",IF(R[-5]C[2]<>""TR"",IF(R[-6]C[2]<>""TR"",IF(R[-7]C[2]<>""TR"",""add more"",R[-7]C+1),R[-6]C+1),R[-5]C+1),R[-4]C+1),R[-3]C+1),R[-2]C+1),R[-1]C+1), IF(R[-1]C[2]=""TR"",IF(RC[2]<>""TR"",R[-1]C&""A"",R[-1]C+1),IF(R[-2]C[2]=""TR"",R[-2]C&""B"",IF(R[-3]" & _
"R"",R[-3]C&""C"",IF(R[-4]C[2]=""TR"",R[-4]C&""D"",IF(R[-5]C[2]=""TR"",R[-5]C&""E"",IF(R[-6]C[2]=""TR"",R[-6]C&""F"",IF(R[-7]C[2]=""TR"",R[-7]C&""G"","""")))))))))"
Range("C121").Select
End Sub
Это записанный макрос из функции макроса записи.
Формула была разработана в excel, и я пытаюсь ее повторно использовать внутри макроса. причина, по которой я не пробовал случай выбора или что-то в этом роде, потому что эта формула была разработана для динамического изменения основанных на ней ячеек. Поэтому, если я добавлю строку над ней и вставляю новую строку бюджета (это для бюджета, как указано выше), строки ниже этого будут соответственно изменяться.
редактировать: ех, что он выглядит как первенствует:
может вы просто describe что ты хочешь делать? Ваша чудовищная серия вложенных IFs предполагает, что выбор VBA Select или цикл будет лучшим решением. Но я не могу сказать, каков предполагаемый результат ... –
Я хотел бы увидеть снимок вашей записанной формулы как - он дает правильный ответ? – brettdj
Я сделал снимок записанного макроса выше: В качестве примера того, что он делает: Если у вас есть бюджетная строка, он будет занимать номер над ним и добавить 1, если у вас есть корректировка бюджета item, вы можете сохранить один и тот же номер (чтобы позволить группировать элементы вместе) и просто добавить буквы, a, b, c и т. д. В качестве ссылки выше причина, по которой я хотел использовать формулу, заключается в том, что этот бюджет будет часто используется, и эта формула используется для обеспечения автоматической корректировки нумерованных элементов. Хотя я открыт для предложений. – JWysocki