子作品来自 "Book1" 但不是来自“PERSONAL.XLSB

Sub works from "Book1" but not from "PERSONAL.XLSB

我使用 Excel 2016 并且此子复制自:

Sub RemoveNonDigits()
  Dim X As Long, Z As Long, LastRow As Long, CellVal As String
  Const StartRow As Long = 1
  Const DataColumn As String = "A"

  Application.ScreenUpdating = False

  LastRow = Cells(Rows.Count, DataColumn).End(xlUp).Row
  For X = StartRow To LastRow
    CellVal = Cells(X, DataColumn)
    While IsNumeric(Left(CellVal, 1))   ' Here
      CellVal = Mid(CellVal, 2)         ' all digits at the start
    Wend                                ' are removed
    Cells(X, DataColumn) = trim(CellVal)
  Next

  Application.ScreenUpdating = True
End Sub

当我从您的站点复制此子并将其粘贴到新模块中的新工作簿 (Book1) 时,它工作正常。

当我从 Book1 复制 sub 并将其粘贴到 PERSONAL.XLSB 中的新模块时,出现此错误:

”编译错误: 参数数量错误或 属性 赋值无效。

"Sub RemoveNonDigits()" 以黄色突出显示,"trim" 以蓝色突出显示。

任何人都可以告诉我为什么 Sub 在 "Book1" 中工作但在 "PERSONAL.XLSB" 中不工作吗?

非常感谢任何帮助。 提前谢谢你。

您似乎在某个地方有另一个名为 trim 的函数,它采用其他参数,或者可能是 属性 或其他模块、引用库或加载项中的变量。

调用 VBA.Trim 通过消除 函数名称的歧义解决了您的问题。通过在函数名称前加上 VBA. 前缀,您可以 显式 告诉编译器您要调用 VBA 内置的函数 Trim ,不是任何其他人。

通常不需要使用 VBA. 作为前缀,但有时它有助于消除名称解析的歧义。