【问题标题】:Deleting blank rows in a table with Excel使用 Excel 删除表格中的空白行
【发布时间】:2017-05-02 02:38:13
【问题描述】:

我想创建一个宏来循环遍历表并根据 B:E 列中的条件删除空白行,而不删除表的倒数第二行。

表格的倒数第二行在 B:E 列中将始终为空,因此我希望它跳过该行。

这里是B、C、D、E列的名称

客户
管道阶段(选择下拉菜单)
预测收盘(选择下拉菜单)
潜在机会

这是我下面的内容,但我不确定如何将其修改为正确的格式。

Sub Delete_Table_Rows()

Dim tblrows As Range
Dim client As Long
Dim tbl As ListObjects
Dim ws As Worksheet

With Application
    .Calculation = xlCalculationManual
    .ScreenUpdating = False

Set ws = Sheets(“sheet1”)
set tblrows = ws.worksheets("sheet1").Range(“table1, [client]").Value = ""

    For client = Selection.Rows.Count To 1 Step -1
        If WorksheetFunction.CountA(Selection.Rows(client)) = “” Then
            Selection.Rows(client).EntireRow.Delete
        End If
Next i
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With
End Sub

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    也许是这样的......

    Sub DeleteBlankRowsFromTable()
    Dim ws As Worksheet
    Dim tbl As ListObject
    Dim i As Long, FirstRow As Long, LastRow As Long
    Dim rng As Range
    With Application
        .Calculation = xlCalculationManual
        .ScreenUpdating = False
    End With
    
    Set ws = Sheets("Sheet1")
    Set tbl = ws.ListObjects("Table1")
    
    FirstRow = Range("Table1[Client]").Row
    
    LastRow = tbl.Range.Cells(tbl.Range.Cells.Rows.Count, 1).Row
    
    For i = LastRow - 2 To FirstRow Step -1
        Set rng = ws.Range(ws.Cells(i, 2), ws.Cells(i, 2).End(xlToRight))
        If WorksheetFunction.CountBlank(rng) = 4 Then
            ws.Rows(i).Delete
        End If
    Next i
    
    With Application
        .Calculation = xlCalculationAutomatic
        .ScreenUpdating = True
    End With
    End Sub
    

    【讨论】:

    • 确保Sheet1、Table1和表格列Client存在或更改代码中的引用。
    • 现在我在“firstrow = range("table1[client]:).row”的代码行上收到“应用程序定义或对象定义错误”
    • 创建一个虚拟工作簿并在 Sheet1 上插入一个默认名称为 Table1 的表格并运行代码,它将毫无问题地运行。顺便说一句,确保名为 Client 的表列存在并且它没有前导或尾随空格。
    • 现在我收到了代码行的 object_global'failed' 的 'method 'range' - FirstRow = Range("Table2, [Client]").Row
    • @n00b - 为什么在Table2[Client] 之间放置,
    猜你喜欢
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多