Excel 获取运行时错误';1004';通过复制公式

Excel 获取运行时错误';1004';通过复制公式,excel,vba,runtime,Excel,Vba,Runtime,我尝试使用VBA将公式复制到电子表格中。我用了一些公式,但这个公式让我觉得很糟糕。有什么问题吗? 谢谢 这是密码 Sub Raznos() Workbooks("Realization").Worksheets(2).Activate Range("N2").Formula ="=IF(IF(AND(A1<>A2,M2<>0),K2-L2,"")>0,IF(AND(A1<>A2,M2<>0),K2-L2,""),"")" End Sub S

我尝试使用VBA将公式复制到电子表格中。我用了一些公式,但这个公式让我觉得很糟糕。有什么问题吗? 谢谢

这是密码

Sub Raznos()
Workbooks("Realization").Worksheets(2).Activate
Range("N2").Formula ="=IF(IF(AND(A1<>A2,M2<>0),K2-L2,"")>0,IF(AND(A1<>A2,M2<>0),K2-L2,""),"")"
End Sub
Sub-Raznos()
工作簿(“实现”)。工作表(2)。激活
范围(“N2”)。公式=“=如果(和(A1A2,M20),K2-L2,”)>0,如果(和(A1A2,M20),K2-L2,”)”
端接头

这里有一个小自定义项,可以用来处理字符串中的引号:

Function QuoteEscape(ByVal rawText As String) As String
    QuoteEscape = Replace$(rawText, """", """""")
End Function
然后您可以这样使用它:

Range("N2").Formula = QuoteEscape("=IF(IF(AND(A1<>A2,M2<>0),K2-L2,"")>0,IF(AND(A1<>A2,M2<>0),K2-L2,""),"")")
Range(“N2”)。公式=QuoteEscape(=IF(和(A1A2,M20),K2-L2,”)>0,IF(和(A1A2,M20),K2-L2,”))
所有的
必须是四个
更改为
文本(,)
,以避免处理字符串中的双引号。