2016-02-14 5 views
0

После вставки функции (SUMIF) с VBA в excel, я получил ошибку имени в этих ячейках. Однако, если я нажимаю и вхожу в одну из этих ячеек, ошибка исчезает, и функции вычисляются правильно.VBA Excel? # NAME # ошибка после функции вставки

Кто-нибудь знает, как это исправить?

Заранее спасибо.

Это код VBA:

Do While Not rst.EOF 
With rst 
    Sheets("Test").Cells(linea, 1) = .Fields("Posting Date") 
    Sheets("Test").Cells(linea, 2) = .Fields("Entry No_") 
    Sheets("Test").Cells(linea, 3) = .Fields("G_L Account No_") 
    Sheets("Test").Cells(linea, 4) = .Fields("Document No_") 
    Sheets("Test").Cells(linea, 5) = .Fields("External Document No_") 
    Sheets("Test").Cells(linea, 6) = "=customFunction(E" & line & ")" 
    Sheets("Test").Cells(linea, 7) = .Fields("Description") 
    Sheets("Test").Cells(linea, 8) = .Fields("Debit Amount") 
    Sheets("Test").Cells(linea, 9) = .Fields("Credit Amount") 
    Sheets("Test").Cells(linea, 10) = .Fields("Amount") 
    Sheets("Test").Range("K" & linea).Formula = "=SUMIF(F:F,F:F,J:J)" 

    line = line + 1 
    rst.MoveNext 
End With 
Loop 
+0

Почему используется ** строка ** для номера строки, но увеличивается ** строка = строка + 1 **? – Jeeped

+0

Ошибка ввода. Это строка вместо – user3472675

+0

Вы знаете, что можете заполнить диапазон без зацикливания? Например, поставьте 1 в диапазоне A1: A10 и сделайте B1 = A1, затем запустите это в окне отладки (ctrl-g в VBE) 'Range (« B2: B10 »). Formula =" = B1 + A2 "' Auto приращения без необходимости прокручивать строки с 2 по 10 –

ответ

0

Вы, вероятно, следует добавить:

Вычислить

в конце вашей функции VBA, чтобы вызвать Excel для обновления, эээ, расчеты

+0

Попробовал вручную вычислить лист и в конце моего Sub, но не работает. Я думаю, что это может быть что-то вроде имен диапазонов, но я не могу найти проблему. – user3472675

0

Я нашел решение. Я получил # имя? потому что я использовал имя локальной функции. Чтобы решить эту проблему, я использовал .FunctionLocal, это «переводит» имена функций Excel, если вы используете другой язык.

Спасибо в любом случае.