2015-06-09 10 views
-1

Я пытаюсь передать одну формулу из VBA первенствует в клетку я этот кодExcel VBA имя ошибки в формуле

atmFecha = "=IF(L" & tmLastRow & "=0," & Chr(34) & " " & Chr(34) & ",'ws2'!$E$3)"  
    .Cells(tmLastRow, "H").Value = atmFecha 

эту инструкцию вставки в ячейке правильная формула, но дисплей #NAME? Мне нужно нажать «F2», а затем «Enter» в Excel распознать формулу и отобразить правильное значение.

Я использую формулу формул и формулу R1C1, но результат тот же.

что я могу сделать, чтобы автоматически распознать правильное значение формулы?

+0

' .Cells (tmLastRow, „H“). Формула = atmFecha' –

+0

Я предполагаю, что 'atmFecha =" = IF (L "& tmLastRow &" = 0, "& Chr (34) &" "& Chr (34) &", 'ws2'! $ E $ 3) "' –

+0

Я пробовал, но не работал, продолжает показывать #NAME? В ячейке, я редактирую свой пост, чтобы включить эту функцию, и formulaR1C1. Но thx для вашего комментария. – miguelSnam

ответ

1

После кода, добавьте следующую строку:

Application.Calculate 

Это звучит, как вы настроены на ручной расчет, так что линия будет обновить все. Если вы задаете несколько формул, дождитесь, пока они все вставлены, выполните эту строку.

+0

Это не вызывает ошибку '# NAME';) –

0

Я не знаю, как это исправить, но сейчас работаю, я тестировал со вторым файлом, я сделал это код»

Sub btnCalculate() 
    Dim atmFecha As String 
    Dim tmLastRow As Integer 

    With Worksheets("ws1") 
     tmLastRow = 1 
     atmFecha = "=IF(C1=0," & Chr(34) & " " & Chr(34) & ",'ws2'!$A$1)" 
     .Cells(tmLastRow, "A").Value = atmFecha 
    End With 
End Sub