Формула работает с ручным вводом, но не через VBA - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть набор данных, который выглядит следующим образом:

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.

1 Ответ

0 голосов
/ 12 ноября 2018

Я разобрался с решением моей проблемы:

Я использую неанглийскую версию Excel. Когда я пытаюсь использовать локализованные имена функций в VBA, возникает ошибка, как описано в вопросе. Когда я использую соответствующие английские имена, все работает как положено.

Это нелогично, потому что когда я применяю условное форматирование через VBA, мне приходится использовать локализованные имена функций. Использование английских там не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...