【问题标题】:VBA Expected:end of statementVBA 预期:语句结束
【发布时间】:2020-03-11 15:41:55
【问题描述】:

我正在尝试使用下面的公式,但我不断收到预期的语句结束错误

 Worksheets("Report").Cells(8,3).Value="='DATA'!B"&lRow-2&"*'DATA'!D"&lRow-2

错误发生在"*'DATA'!D"

预期:语句结束

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    当输入这一行时……

    Worksheets("Report").Cells(8,3).Value="='DATA'!B"&lRow-2&"*'DATA'!D"&lRow-2
    

    ...进入编辑器,确保您在正确的位置有空格:

    Worksheets("Report").Cells(8, 3).Value = "='DATA'!B" & lRow - 2 & "*'DATA'!D" & lRow - 2
    

    间距是必要的,因为& 有 3 种不同的含义:

    1. 无空格:声明一个数字为Long 类型:
      2& 表示2Long 类型。
      (另见Declaring variables)。

    2. 带空格:连接两个字符串:
      & 带空格意味着连接字符串,例如。 TotalString = String1 & String2
      (另见&-Operator

    3. &H 指定十六进制数: 示例&HF 表示十六进制FDebug.Print &HF 将输出15,即十六进制F 转换为十进制数。

    【讨论】:

    • 谢谢...我一直想知道为什么它坚持间距...现在清楚..
    【解决方案2】:

    Worksheets("Report").Cells(8, 3).Value = "='DATA'!B" & lRow - 2 & "*'DATA'!D" & lRow - 2

    【讨论】:

    • 虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。
    • 是的,我已经在另一篇文章中收到了这个反馈。下次我会添加一些额外的解释。
    • 或者,更好的是,这次您可以通过单击答案上的“编辑”来添加一些解释。
    猜你喜欢
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多