从一个缓慢运行的东西开始是这样的:
Sub RemoveNumbersFromColumnA()
Dim i As Long
Dim wks As Worksheet
Set wks = Worksheets(1)
For i = 10 To 1 Step -1
If IsNumeric(Left(wks.Cells(i,"A"),1)) Then
Debug.Print wks.Cells(i,"A"); " deleting..."
wks.Cells(i,"A").Delete
End If
Next i
End Sub
此想法是向后循环并检查单元格内容的最左边部分是否为数字。如果是数字,则在立即窗口中打印信息并将其删除。这就是您所得到的,例如,按 F8 。逐步:
然后,您可以继续,将要删除的行保存到单个范围,最后只删除一次该范围。像这样一个:
Sub RemoveNumbersFromColumnA()
Dim i As Long
Dim myCell As Range
Dim rowsToDelete As Range
For i = 1 To 10
Set myCell = Worksheets(1).Cells(i,"A")
If IsNumeric(Left(myCell,1)) Then
Debug.Print myCell; " adding..."
If rowsToDelete Is Nothing Then
Set rowsToDelete = myCell.EntireRow
Else
Set rowsToDelete = Union(rowsToDelete,myCell.EntireRow)
End If
End If
Next i
If Not rowsToDelete Is Nothing Then
rowsToDelete.Delete
End If
End Sub
本文链接:https://www.f2er.com/2807865.html