Excel не вычисляет формулу автоматически, которая вставляется через VBA

Я создаю формулу через vba и .FormulaR1C1 но Excel, похоже, не понимает, что это формула. Он показывает правильную формулу в строке формулы и опорную ошибку в самой ячейке.

Я попробовал тестовый лист с простой формулой

  .Cells(i, recalcCol).FormulaR1C1 = "=RC(-1)" 

Формат ячейки устанавливается в целом. Вставка .NumberFormat = "general" в любой момент до или после не изменяет поведение. Это определенно не текстовая ячейка.

Я могу ввести ячейку с двойным щелчком или F2 а затем нажать Enter а Excel удалит ошибку и отобразит правильный результат. Но делать это для всех измененных ячеек невозможно.

Я также попытался пересчитать лист, но никаких изменений не произошло.

Любые намеки?

Thx Kaz

Как упоминалось в комментариях, =RC[-1] – правильная формула.

Однако, чтобы увидеть формулу в формате RC самостоятельно, сделайте следующее:

  • Выберите ячейку с формулой
  • Запустите код ниже
  • Проверьте ближайшее окно

 Option Explicit Public Sub TestMe() Debug.Print Selection.FormulaR1C1 Debug.Print Selection.Formula Debug.Print Selection.FormulaLocal End Sub 

Относительно немецкого на английский, в то время как вы используете .FormulaR1C1 или .Formula вы не должны беспокоиться об этом, Excel позаботится об этом. Вы должны волноваться, только если вы передадите формулу в виде строки через .FormulaLocal .


Это результат в непосредственном окне из Sub выше, используя простую формулу SUM ():

 =RC[-1]+SUM(5,5) =M10+SUM(5,5) =M10+SUMME(5;5) 
Interesting Posts

Возвращение нескольких значений из нескольких листов с использованием циклов Excel VBA

Настройка нескольких значений VBA

Проверьте строку для нескольких слов (в любом порядке)

Как заморозить столбец с помощью Excel Interop API?

Каков наилучший способ взаимодействия с Excel с помощью c # 4.0?

Миллисекунды отсутствуют при получении значения DateTime из Excel с использованием .Net Interop

Почему превосходство не скрывает мою форму?

Пользователь Excel vba для выбора книги и копирования данных

Элементы управления ActiveX Excel 2010 больше не работают после обновлений Windows

Как получить значение ячейки, зная ее уникальный идентификатор, сохраненный в стороне?

Удалить символ C # Escape

как изменить месяц в «числах» на месяц в «имени» в большом наборе данных (используя R)

Выбор строки в excel на основе определенных значений в 2 столбцах,

Не удалось использовать метод AutoFilter класса Range (Dispatch vs EnsureDispatch)

Удалить несколько строк, содержащих определенную строку

Давайте будем гением компьютера.