#excel #vba
#excel #vba
Вопрос:
Я пытаюсь вставить формулу в ячейку с помощью vba. Эта формула должна иметь ссылки на activecell.диапазон строк или динамическую ссылку.
Я использую следующий код vba:
Range("P" amp; ActiveCell.Row).Formula = "=IF(OR(G amp; ActiveCell.Row <>"",""H"" amp; ActiveCell.Row <>"",""I"" amp; ActiveCell.Row <>"",""J"" amp; ActiveCell.Row <>"",""M"" amp; ActiveCell.Row <>""),TODAY(),"")"
Я получаю ошибку, определенную приложением или объектом. Пожалуйста, кто-нибудь может показать мне, где я ошибаюсь? Заранее спасибо.
Ответ №1:
предполагая, что вам нужна эта формула:
=IF(OR(G1<>"",H1<>"",I1<>"",J1<>"",M1<>""),TODAY(),"")
Попробуйте это
Range("P" amp; ActiveCell.Row).Formula = "=IF(OR(G" amp; ActiveCell.Row amp; "<>"""",H" amp; ActiveCell.Row amp; "<>"""",I" amp; ActiveCell.Row amp; "<>"""",J" amp; ActiveCell.Row amp; "<>"""",M" amp; ActiveCell.Row amp; "<>""""),TODAY(),"""")"
Ответ №2:
Я бы использовал R1C1
обозначения и CountA()
немного упростил
Range("P" amp; ActiveCell.row).FormulaR1C1 = "=if(counta(RC7:RC10,RC13)>0,Today(),"""")"
Комментарии:
1. @M.Doe, ты справился с этим?
2. @M.Doe, было бы неплохо, если бы вы давали правильные отзывы людям, пытающимся вам помочь. Спасибо
Ответ №3:
Я думаю, что проблема в двойных кавычках. У вас есть:
...).Formula = "=IF(OR(G amp; ActiveCell.Row <>"",""H"" amp; ActiveCell..."
Хотя это должно быть:
...).Formula = "=IF(OR(G amp; ActiveCell.Row <>"""",""""H"""" amp; ActiveCell..."
Помните: в строке, заключенной в -«- chars , любое появление одного и того же символа в строке должно быть удвоено.
Хотя я не проверял это, но я совершенно уверен, что это ошибка (возможно, не ошибка).
Комментарии:
1. спасибо, я попробовал это предложение, но все равно получаю ту же ошибку.