【发布时间】:2017-07-01 12:01:20
【问题描述】:
我使用 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”?
非常感谢任何帮助。 提前谢谢你。
【问题讨论】:
-
如果从 PERSONAL.XSLB 运行代码应该可以工作(我对其进行了测试,它对我有用。问题很可能是包含数据的工作表当前未处于活动状态。跨度>
-
谢谢@Jane 这很有道理,但我该怎么做呢?我对 VBA 很陌生。工作簿一直被复制(新名称),工作表有一个链接到这个子的按钮。
-
你会检查在另一个工作簿中是否有一个名为
trim的自定义函数吗?或者它是一个空白的工作簿?尝试用= VBA.Trim(CellVal)替换您的陈述以查看。 -
谢谢@A.S.H 没有“修剪”功能。它与“= VBA.Trim(CellVal)”一起使用!这只是我清理互联网数据的代码的一部分。我也必须对其他一些陈述做同样的事情。您能解释一下为什么会这样吗?
标签: vba excel-2016