如何删除“ A”列中有数字的行?

在“ A”列中,我试图删除以数字开头的行。例如,在我发布的图像中,我希望宏删除第3和11行。

如何删除“ A”列中有数字的行?

 Sub RemoveNumbersFromColumnA()
  Dim X As Long,R As Long,Data As Variant
  Data = Range("A3",Cells(Rows.Count,"A").End(xlUp))
  For R = 3 To UBound(Data)
    For X = 3 To Len(Data(R,3))
      If Mid(Data(R,3),X,3) Like "[0-9]" Then

      Rows("3:" & cell.Row - 1).Delete
Next
      Range("A3").Resize(UBound(Data)) = Data
Else if
End Sub
qq961279346 回答:如何删除“ A”列中有数字的行?

从一个缓慢运行的东西开始是这样的:

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 。逐步:

enter image description here

然后,您可以继续,将要删除的行保存到单个范围,最后只删除一次该范围。像这样一个:

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

大家都在问