我已经在许多Excel工作簿中使用了这个VBA而没有任何问题。在特定的工作簿上,我收到运行时错误“13”:一旦到达Cell = Trim(Cell)
部分,就会输入错误错误。可能是什么导致了这个?我查看了数据,但找不到任何与众不同的东西。
Sub TrimHS()
Application.Cursor = xlWait
Application.ScreenUpdating = False
Dim LastRow As Integer
LastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Range("A83:G" & LastRow).Select
Dim rng As Range, Cell As Range
Set rng = Selection
For Each Cell In rng
Cell = Trim(Cell)
Next Cell
Application.Cursor = xlDefault
End Sub
答案 0 :(得分:2)
Cell类型为Excel.Range
,Trim输出类型为String
我相信cell.value=trim(cell.value)
是您需要的
答案 1 :(得分:2)
您在特定工作簿上有错误,因此如果您要修剪它,Trim()
会给出错误13
。修剪之前确保没有错误:
For Each Cell In rng
If Not IsError(Cell) Then
Cell = Trim(Cell)
End If
Next Cell
要查看代码有什么问题,请在debug.print Cell
行之前写下Trim
。它将在控制台上开始大量打印,打印的最后一行应如下所示:Error 2007
或类似。
这将显示MsgBox及其工作表中包含错误的单元格:
For Each Cell In rng
If Not IsError(Cell) Then
Cell = Trim(Cell)
Else
MsgBox "Error on " & Cell.Address & " in " & Cell.Parent.Name
End If
Next Cell