У меня есть набор данных, который выглядит следующим образом:
A B C
1 10 145
1.1 11 0
1.2 12 0
1.3 13 0
2 14 145
2.1 15 0
2.2 16 0
3 17 145
3.1 18 0
3.2 19 0
Столбцы A и B в таблице являются моими входными данными, столбец C создается по следующей формуле:
=IF(MOD([@A],1)=0,SUM([B]),0)
Это упрощенный пример, а не фактическая формула, которую я использую, но этого достаточно в качестве минимального воспроизводимого примера.
Когда я вручную вводю эту формулу в панель редактирования, она работает точно так, как ожидается, и выдает значения в таблице выше.Однако, когда я пытаюсь ввести эту формулу в ячейки, используя VBA, это не удается.Это дает мне ошибку:
Ошибка: недопустимое имя
Если я затем щелкаю ячейку и в панели редактирования, как если бы я хотел манипулировать формулой вручную и простонемедленно нажмите ввод, не изменяя ничего в формуле, ошибка исчезает, и результаты снова отображаются правильно, как и раньше.
Код, который я использую для ввода формулы в ячейку через VBA, следующий:
Sub InputFormula()
Set srcTable = ActiveSheet.ListObjects(1)
fmtString = "=IF(MOD([@A],1)=0,SUM([B]),0)"
Range(srcTable.Name & "[C]").Formula = fmtString
End Sub
Почему явно неправильная формула нарушается при применении через VBA и как я могу исправить ее, чтобы приложение работало через VBA?
Я использую Excel 2019 в Windows 10 x64.