2013-11-02 1 views
1

Я пытаюсь добавить формулу с помощью VBA в ячейку в Excel, то (упрощенно) код, какExcel VBA Ошибка 1004 - приложения или объект определенные ошибки в двойные кавычки в моей формуле

Dim destRow as integer 
    destRow = 107 
    Cells(destRow, 19) = "=IF(L" & destRow & "="""";"""";""UNB"")" 

`Я также попытался следующие (вместо последней строки):

Cells(destRow, 19) = "=IF(L" & destRow & "=" & chr(34) & chr(34) & ";" & chr(34) & chr(34) & ";" & chr(34) & "UNB" & chr(34) & ")" 

в ближайшем окне, как произвести правильный вывод:

=IF(L107="";"";"UNB") 

... однако, я получаю сообщение об ошибке 1004 «Определенная пользователем или объектная ошибка» в последней строке при запуске моего кода.

Любая помощь будет оценена!

+0

Попробуйте следующее: 'Ячейки (destRow, 1) =" = IF (L "& destRow &" = "" "", "" "", "" UNB "") "' –

+0

Spot on Alex! Спасибо за это! С чем связана сделка; и, в excel? На моей машине, когда формула находится в ячейке, Excel требует; в противном случае он пьет, но при использовании VBA он болтает, если я не использую a, . Это что-то вроде формата даты (mm/dd/yyyy) в VBA в том, что он ожидает определенный формат? Тогда почему приложение должно вести себя по-разному в обычном интерфейсе? Еще раз спасибо! – wedwo

+0

Это странно - по моему опыту я всегда пользовался запятыми. Кажется, что это региональная вещь http://www.mrexcel.com/forum/excel-questions/385317-semicolon-comma-regional.html Я полагаю, что это связано с тем фактом, что в некоторых регионах десять тысяч написано 10.000,00 – RobinL

ответ

0

Думаю, вам, вероятно, просто нужно обратиться к соответствующему листу.

Ваш код будет работать, если он был в коде для листа, а не в модуле.

Так

Sheet1.Cells(destRow, 19) = "=IF(L" & destRow & "=" & chr(34) & chr(34) & ";" & chr(34) & chr(34) & ";" & chr(34) & "UNB" & chr(34) & ")" 

Очевидно замещать нужный лист, если это не sheet1

+0

Спасибо за помощь, но, к сожалению, в моей системе это не так. Вы пробовали код в своей системе? Я пробовал полностью квалифицированную ссылку на ячейку, и это точно так же. Код находится в листовом модуле. У меня есть некоторые строки до этого в моем коде, которые используют тот же тип ссылки, но без двойных кавычек, и они срабатывают нормально. К сожалению, формула, которую я вставляю, требует двойных кавычек. – wedwo

1

Вы должны заменить запятую ";" в формуле IF для запятых ",". Они будут отображаться как точки с запятой в зависимости от вашей конфигурации excel при интерпретации формулы.

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