2009-07-03 2 views
0

У меня есть следующий код, чтобы посмотреть на дату, при которой происходит значение в отдельном листе в Excel 2000:Ошибка 1004 при установке поиска формула

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

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

ответ

2

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

+0

Ха-ха, я искал часы из-за этого ... Как мы можем это назвать? Ошибка? MS Mischief? –

0

Вы должны указать его в качестве формулы

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

Нет, попробовал это. – l0b0

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