2013-05-16 4 views
1

Привет StackOverflow друзей,Excel - Вставка формулы с VBA

Я борюсь за 1 час с формулой Я хотел бы вставить с помощью VBA:

Formula = "=IFERROR(VLOOKUP(Q" & j & ";Table1[#All];2;FALSE);"""")" 
ThisWorkbook.Worksheets("Sheet1").Cells(j, "AE").FormulaArray = Formula 

Я получаю следующее сообщение об ошибке:

Ошибка времени выполнения '1004' - Определенная или определяемая объектом ошибка

Есть ли проблема с скобками или двойными кавычками?

Спасибо!

ответ

4

Заменить запятую с запятыми:

Formula = "=IFERROR(VLOOKUP(Q" & j & ",Table1[#All],2,FALSE),"""")" 

OpenOffice использует точку с запятой для разделения параметров функции, Excel обычно использует запятые и всегда использует запятые при настройке формул в приведенном выше способом.

+1

WRONG, зависит от настроек вашего региона. Я из Бельгии и использую ';' для разделения параметров. – CustomX

+0

По-прежнему первое, что я проверил; формула кажется мне прекрасной; кавычки все правильные, Table1 [#All] - другой потенциальный виновник, но нам нужно будет увидеть книгу, чтобы проверить это. – Bathsheba

+0

Хмм, правда, но неправильно сказать, что в Excel используются только запятые;) Если вы отредактируете свой ответ, я смогу удалить свой нисходящий поток, я вижу, что TS принял его как ответ;) – CustomX

2

В зависимости от региональных настроек разделитель списков (который также используется для разделения параметров в функциях) является точкой с запятой или запятой. Это применимо при вводе формулы в ячейку.

Excel динамически настраивает разделитель списков (и имена функций) в соответствии с региональными настройками текущего компьютера при открытии файла.

Итак, если пользователь с немецкой региональной настройкой, у которой есть разделитель списка ; сохраняет файл, затем пользователь с региональными настройками США и разделителем списков , открывает тот же файл, Excel автоматически настроит разделители немецких списков в формулах.

При написании VBA вам всегда нужно использовать соглашения US-English для разделителя списков, который является запятой.

Смежные вопросы