Ошибка 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 & ")"