使用Excel VBA插入公式

时间:2013-03-20 01:10:52

标签: vba excel-vba excel-formula excel

我需要在使用vba编码时插入一个公式。

目前代码行

=IF(
    AND(
        Compliance="No",
        OR(
            Delivery <> "",
            C31 <> ""
        )
    ),
    "Please Delete Compliance Data",
    IF(
        AND(
            E11="",
            E13="",
            E23="",
            E25="",
            E26="",
            E28="",
            E30="",
            E31=""),
        VLOOKUP(C15,'Extrapolated RV Calculator'!B:S,18,0),
        "Please complete form / SC request"
    )
)"

似乎在代码中的文本部分出错。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

以下是在VBA中使用字符串内部引号的四种方法:

  • 用Chr $(34)替换“”。 34是引号的ASCII码
  • 使用String(2,Chr $(34))制作双引号
  • 每个人使用两个双引号(根据Tim的评论)
  • 使用不同的方法替换两个双引号,例如ISBLANK用于工作表函数。

这些都不是更好。我通常使用两个双引号来逃避它们。但有时我会得到这么多的引号,因此很难阅读和维护,所以我会使用不同的方法。这是一个例子:

Dim aFormula(1 To 5) As String

aFormula(1) = "=IF(AND(Compliance=""No"",OR(Delivery<>" & String(2, Chr$(34))
aFormula(2) = ",C31<>" & String(2, Chr$(34)) & ") ),"
aFormula(3) = Chr$(34) & "Please Delete Compliance Data" & Chr$(34)
aFormula(4) = ",IF(AND(ISBLANK(E11),ISBLANK(E13),ISBLANK(E23),ISBLANK(E25),ISBLANK(E26),ISBLANK(E28),ISBLANK(E30),ISBLANK(E31)),"
aFormula(5) = "VLOOKUP(C15,'Extrapolated RV Calculator'!B:S,18,0),""Please complete form / SC request""))"

Sheet1.Range("R13").Formula = Join(aFormula, vbNullString)

答案 1 :(得分:0)

为了让您的未来更加强大,我强烈建议您在VBA代码中使用Excel中尚未熟悉的功能时执行以下操作。

转到开发人员菜单,然后按录制宏按钮。

现在在单元格中填写公式,通过按删除清除单元格内容并通过进入单元格清除单元格内容并删除所有字符并按Enter键。

现在停止宏。然后转到VBA窗口。了解代码的结构如何实现这些目标。

每当您想要做其他事情时,也可以应用此功能,以便了解您可以使用什么来获得所需的结果,而无需在互联网上浏览多年!

同时观察本地窗口中的局部变量或Debug.Print您尝试构建的字符串,以查看到目前为止看到的hwat