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)