VBA将公式添加到单元格

Bel*_*igh 2 excel vba excel-vba excel-2013

我正在尝试编写一些VBA,它将在3个单元格中添加标题文本,然后将公式一直填充到最后一行。我已经写了下面的代码,它没有任何问题,但是当我第一次遇到时,它会.Formula抛出一个

应用程序定义或对象定义的错误

需要修改什么才能使该宏成功执行?(这些公式是直接从单元格中的公式中提取的,因此我知道它们至少在“前端”有效)

Function Gre()
    Range("E2").Select
    ActiveCell.FormulaR1C1 = "Under"
    Range("F2").Select
    ActiveCell.FormulaR1C1 = "Over"
    Range("G2").Select
    ActiveCell.FormulaR1C1 = "Result"

    With Range("E2:E" & Cells(Rows.Count, "C").End(xlUp).Row)
        .Formula = "=IF(C2<B2,B2-C2,"")"
    End With
    With Range("F2:F" & Cells(Rows.Count, "C").End(xlUp).Row)
        .Formula = "=IF(C2>B2,C2-B2,0)"
    End With
    With Range("G2:G" & Cells(Rows.Count, "C").End(xlUp).Row)
        .Formula = "=IF(F2>0,'Issue',"")"
    End With
End Function
Run Code Online (Sandbox Code Playgroud)

Opi*_*Dad 6

问题可能是您用公式转义了引号。

您需要的是:

.Formula = "=IF(C2>B2,B2-C2,"""")"
Run Code Online (Sandbox Code Playgroud)

例如第一个。其他报价也需要加倍。

附带说明一下,最好使用以下方法指定正在处理的工作表:

 Dim ws as worksheet
 Set ws = Sheets("mySheet")
 ws.Range("E2").FormulaR1C1 = "Under"
Run Code Online (Sandbox Code Playgroud)

等等

如果不这样做,则有时在运行代码时会发生错误。