Ошибка 1004 при вставке формулы поиска

У меня есть следующий код для поиска даты, когда значение появляется на отдельном листе в Excel 2000:

sSheet.Range(dateColumn & pRow) = _
    "=lookup(" & valColumn & pRow & ";'" & _
    iSheet.Name & "'!" & tColumn    & firstRow & ":" & tColumn    & lastRow & ";'" & _
    iSheet.Name & "'!" & dateColumn & firstRow & ":" & dateColumn & lastRow & ")"

Это завершается с ошибкой 1004, которая кажется полной ловушкой. Настоящим кикером является то, что если я вставлю галочку перед знаком равенства в значении, как в "'=lookup(", он работает нормально, и если я уберу галочку вручную, формула работает. Так почему же он отказывается вставлять?

2 ответа

Решение

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

Вы должны указать это как формулу

sSheet.Range(dateColumn & pRow).Formula = _
"=lookup(" & valColumn & pRow & ";'" & _
iSheet.Name & "'!" & tColumn    & firstRow & ":" & tColumn    & lastRow & ";'" & _
iSheet.Name & "'!" & dateColumn & firstRow & ":" & dateColumn & lastRow & ")"
Другие вопросы по тегам