我使用Excel 2016,此Sub复制自:VBA to remove numbers from start of string/cell
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”?
非常感谢任何帮助。 提前谢谢。
答案 0 :(得分:0)
看起来你有另一个名为trim
的函数带有其他参数,或者可能是某个其他模块中的属性或变量,引用的库或加载项。
电话VBA.Trim
通过消除函数的名称来解决您的问题。通过在函数的名称前添加VBA.
作为前缀,您可以告诉编译器显式您要调用VBA内置的函数Trim
,而不是任何其他函数。< / p>
通常不需要使用VBA.
进行前缀,但有时它有助于消除名称解析的歧义。