繁体   English   中英

使用Excel VBA插入公式

[英]Inserting a formula using Excel VBA

我需要在使用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"
    )
)"

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

任何帮助,将不胜感激。

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

  • 用Chr $(34)替换“”。 34是引号的ASCII码
  • 使用String(2,Chr $(34))来制作双引号
  • 每个人使用两个双引号(根据蒂姆的评论)
  • 使用不同的方法替换两个双引号,例如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)

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

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

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

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

无论何时你想做其他事情都可以应用它,以便了解你可以使用什么来获得你想要的结果,而无需在互联网上浏览多年!

还要在本地窗口中查看局部变量或者调试您尝试构建的字符串以查看到目前为止看到的hwat

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM