【问题标题】:Compile error: Invalid qualifier编译错误:限定符无效
【发布时间】:2015-04-30 14:52:19
【问题描述】:

我正在尝试让我的程序运行 2 个工作簿和 3 个工作表。为我验证一些数字。

Sub Validate_Old_Data()

Dim DBLbrow As Double
Dim DBLAbrow As Double
Dim DBLBbrow As Double
Dim STRname As String
Dim INTcc As Integer
Dim CopyRange As Range

 DBLbrow = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row

 Do While BDLbrow > 5

STRname = Range("B" & DBLbrow).Value
INTcc = Range("C" & DBLbrow).Value

Workbooks("Z:\Centralized Charges\Centralized Charges 2015\Forecast and Actuals\P3\Headcount Templates\P3 Centralized Charges Headcount Tracker (vs. 2015 Budget).xlsx").Activate

Worksheets(INTcc).Activate

DBLAbrow = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row

    Do While DBLAbrow > 8

        If Range("B" & DBLAbrow).Value = STRname Then

            CopyRange = Range(DBLAbrow).Row.Copy

            Workbooks("Z:\Centralized Charges\Centralized Charges 2015\Forecast and Actuals\P3\Headcount Templates\Charges Headcount Tracker (vs. 2015 Budget).xlsm").activatae

            Worksheets(INTcc).activatae

            DBLBbrow = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row

            If Range("B" & DBLBbrow).Value = STRname Then

                Range(DBLbrow).Value = CopyRange

            Else

                DBLBbrow = DBLBbrow - 1

            End If

            Loop

        Else
            DBLAbrow = DBLAbrow - 1


        End If

        Loop

BDLbrow = BDLbrow - 1

End Sub

但我收到 Invalid Qualifier 错误,有人可以解释原因吗?

【问题讨论】:

  • 你能多谈谈你想用这段代码做什么吗?也许将其缩小到一个较小的块。
  • 停在哪一行?
  • 它在第一行就停止了......我以前从未遇到过这个问题。这段代码的目的是遍历一个列表,在电子表格 B 中找到相应的值,然后将我拥有的所有数据返回到电子表格 A。
  • 不知道这是否是问题所在,但您的拼写错误......您的代码显示“Do While BDLBrow > 5”,但您的变量名为“DBLBrow”。我建议使用 Option Explicit 以避免将来出现此类错误。
  • @Sam 我前段时间也这么想,但不是,他们也“学会”了接受字母 :)

标签: excel vba do-loops qualifiers


【解决方案1】:

编译和运行时错误总是伴随着突出问题所在。尝试运行代码以查看编译器将为您选择 incorrect qualifier 就足够了:

那是Rows,而不是Row

只是为了在这个糟糕的答案中添加一些有用的“直观”信息,以便您在未来获得类似问题的帮助。在开发过程中,您可能会遇到(叹息)成千上万的错误,这些错误通常分为两种类型(我将把这个例子放在 VBA 上):

  • 编译错误:表示“Excel 不理解你在说什么”。 例如,你使用了不存在的属性Row; Excel 不明白您对 Row 的意思,并拒绝开始。因此,代码甚至不会开始运行,您将看到一个白色窗口,突出显示(如果可能)“Excel 无法理解的单词”,以便您修复它。
  • 运行时错误:这意味着“Excel 确实理解你在说什么,但在某些时候他不喜欢它。”比如你写k = 2/0;您没有对 Excel 使用“难以理解的东西”,但是当它必须执行除法时,它的堆栈会溢出并导致运行时错误。在这种情况下,您将看到一个带有方便按钮的灰色窗口,标记为 Debug:您按下它,黄色的代码行将突出显示,这就是错误所在的行。

我很抱歉我用“技术性差”的语言来解释这一点,但我更希望你直截了当。如果你想深入探讨这个重要的话题,请阅读this

【讨论】:

  • 耶,手绘红色箭头!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-21
  • 2022-01-07
  • 2021-12-22
  • 1970-01-01
  • 2015-06-14
相关资源
最近更新 更多