【问题标题】:VBA VLOOKUP Formula Compile errorVBA VLOOKUP 公式编译错误
【发布时间】:2016-12-19 21:34:02
【问题描述】:

我总是遇到编译错误: 预期:statemets 结束 并且总是向我展示代码的一部分 ("F1:H66")

Public Sub macro2()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Range("G31").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-4],Sheet2.Range("F1:H66"),3, False)"
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

【问题讨论】:

  • 这个错误其实很容易在SO上看到,看公式上的文字颜色。 “”之间是红色的,范围内是黑色,然后又是红色。在大多数 IDE(可能是全部)中,您应该仔细观察文本的颜色变化。这可能是正确的,但大多数时候颜色变化是不好的。不幸的是,在 VBA 编辑器中没有这样的奢侈,但确实如此。
  • 谢谢...这就是为什么我问问题出在哪里,因为我在 VBA 中没有经验,而且我看到 VBA 编辑器仅在关键字中更改颜色。 Notepad++ 可以解决这个问题。

标签: excel vba vlookup


【解决方案1】:

双引号出现在字符串中时:

"=VLOOKUP(RC[-4],Sheet2.Range(""F1:H66""),3, False)"

------------------------------^--------^----------

【讨论】:

    【解决方案2】:

    使用Chr(34) 拥有",更易于阅读。

    其次,尽量避免使用Select和ActiveCell,而是可以使用直接的Range方法,见下面的代码:

    Range("G31").FormulaR1C1 = "=VLOOKUP(RC[-4],Sheet2.Range(" & Chr(34) & "F1:H66" & Chr(34) & "),3, False)"
    

    【讨论】:

      【解决方案3】:

      试试这个代码。您可以根据需要调整单元格的值。

      NewValue = Application.WorksheetFunction.VLookup( Range("G31"), Range("F1:H66"), 3, False )
      

      【讨论】:

        【解决方案4】:

        另一种方式是使用
        "=VLOOKUP(RC[-4],Sheet2!R1C6:R66C8,3, False)"

        这将给出公式:=VLOOKUP(C31,Sheet2!$F$1:$H$66,3, FALSE)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-27
          • 1970-01-01
          • 2019-01-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多