#vba #if-statement
#vba #if-оператор
Вопрос:
это ново для меня. У меня возникла проблема при попытке запустить формулу в VBA с использованием IF.
Идея состоит в том, чтобы включить в столбец AR3 дату изменения, когда в C3 содержится информация.
Это то, что я написал:
Range("AR3").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-3]="";"";IF(RC[-44]="";NOW();RC[-44])"
Заранее спасибо!!
Комментарии:
1. замените точку с запятой на запятую и экранируйте кавычки:
"=IF(RC[-3]="""","""",IF(RC[-44]="""",NOW(),RC[-44])"
2. Привет, simoco, к сожалению, это все еще не работает 🙁
3. эта строка по-прежнему выделена желтым цветом, и когда я запускаю макрос, он показывает ошибку. есть идеи?
Ответ №1:
В вашей формуле есть несколько ошибок:
- Вам нужно экранировать двойные кавычки (с двойными кавычками… итак, всего четыре)
- Вам не хватает закрывающей круглой скобки
- Это необязательно, но вам не нужно выбирать диапазон
Вы можете использовать следующую исправленную инструкцию:
Range("AR3").FormulaR1C1 = "=IF(RC[-3]="""","""",IF(RC[-44]="""",NOW(),RC[-44]))"
В следующий раз, когда вы столкнетесь с подобной проблемой, просто используйте macro recorder: нажмите «Записать макрос» и введите свою формулу. Кроме того, вы всегда можете изменить отображение в Excel на ссылочный стиль R1C1 (Параметры> Формулы> Ссылочный стиль R1C1), когда это полезно (лично я сопоставил это изменение с комбинацией клавиш быстрого доступа, чтобы при необходимости я мог легко получить номера столбцов)
Комментарии:
1. У меня была похожая проблема. Проверил скобки и т. Д., Но, в конце концов, виновником были точки с запятой!