子作品来自 "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.
作为前缀,但有时它有助于消除名称解析的歧义。
我使用 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.
作为前缀,但有时它有助于消除名称解析的歧义。