首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除大表中的行

删除大表中的行
EN

Stack Overflow用户
提问于 2019-06-24 08:15:08
回答 3查看 186关注 0票数 0

我有一个大表,我想从其中删除与A列的特定值相对应的整行。我使用for循环,但我正在寻找一种更有效的方法。

代码语言:javascript
复制
Sub deleteRow()
    For i = 1 To 900000
        If Cells(i, 1) > 7 Then
            Rows(i).Select
            Selection.Delete
        End If
    Next i
End Sub
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-06-24 08:27:49

这个简单的宏会为你工作:

不需要循环

对于表,请使用以下内容:

代码语言:javascript
复制
Sub deleteRow()

    With ActiveSheet.ListObjects("Table1") ' Change table name

        .Range.AutoFilter Field:=1, Criteria1:=">7"
        .DataBodyRange.Delete

    End With

End Sub

它还将显示一个警告,当它出现时选择Yes

对于简单的范围对象,请使用以下命令:

代码语言:javascript
复制
Sub deleteRow()

    With ActiveSheet.UsedRange

        .AutoFilter Field:=1, Criteria1:=">7"
        .Offset(1, 0).SpecialCells(xlCellTypeVisible).Delete xlShiftUp

    End With

End Sub

使用各种表格操作命令的有用链接。这里

票数 2
EN

Stack Overflow用户

发布于 2019-06-24 08:26:50

您应该在结束时立即删除它们,而不是在每个实例上删除。

尝尝这个。

代码语言:javascript
复制
Sub deleteRow()
Dim killRNG As Range
Set killRNG = Cells(Rows.Count, 1).EntireRow

For i = 1 To 900000


If Cells(i, 1) > 7 Then

Set killRNG = Union(Cells(i, 1).EntireRow, killRNG)

End If
Next i

killRNG.Delete

End Sub
票数 0
EN

Stack Overflow用户

发布于 2019-06-24 10:31:18

一些窍门:

代码语言:javascript
复制
Option Explicit

Sub deleteRow()

    Dim i As Long, LastRow As Long

    'Create a with statement refer to the sheet where data are store
    With ThisWorkbook.Worksheets("Sheet1")

        'Find LastRow of column A. There is no need to loop up to 900000
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

        'When you loop aiming to delete you loop from bottom to top
        For i = LastRow To 1 Step -1

            'In both ".Cells(i, 1) > 7" & ".Rows(i).EntireRow.Delete" we use "." before
            If .Cells(i, 1).Value > 7 Then
                .Rows(i).EntireRow.Delete
            End If

        Next i

    End With

End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56732430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档