Проблемы с формулой R1C1 при использовании IF

#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. У меня была похожая проблема. Проверил скобки и т. Д., Но, в конце концов, виновником были точки с запятой!