设置公式属性时的运行时错误1004应用程序定义或对象定义的错误

时间:2017-03-29 10:01:31

标签: excel vba excel-vba excel-formula

这很好用:

Sub Button1_Click()

    Dim strFormulas(1 To 3) As Variant

    With ThisWorkbook.Sheets("TRANSFORM")
        strFormulas(1) = "=SUM(A2:B2)"
        strFormulas(2) = "=PRODUCT(A2:B2)"
        strFormulas(3) = "=A2/B2"

        .Range("A4:G4").Formula = strFormulas
        .Range("A4:G20").FillDown
    End With

End Sub

但这不起作用 - 除了strFormulas(1)之外,一切都是一样的:

Sub Button1_Click()

    Dim strFormulas(1 To 3) As Variant

    With ThisWorkbook.Sheets("TRANSFORM")
        strFormulas(1) = "=IF(NOT(IMPORT!A4=''),VLOOKUP(IMPORT!A4,'VL1'!$Q$4:$R$26,2,FALSE),'-')"
        strFormulas(2) = "=PRODUCT(A2:B2)"
        strFormulas(3) = "=A2/B2"

        .Range("A4:G4").Formula = strFormulas
        .Range("A4:G20").FillDown
    End With

End Sub

我收到此错误:

  

运行时错误1004应用程序定义或对象定义的错误

我认为可能是因为我试图从strFormulas(1)中的其他工作表中提取值。

我做了我的研究,但无法找到解决方案。任何人都可以看到问题所在吗?

1 个答案:

答案 0 :(得分:2)

'中有撇号strFormulas(1),其中应该有引号"。所以,它应该更像是

strFormulas(1) = "=IF(NOT(IMPORT!A4=""""),VLOOKUP(IMPORT!A4,""VL1""!$Q$4:$R$26,2,FALSE),""-"")"

只需用两个引号'替换公式中的所有""