Excel VBA删除隐藏的表行

时间:2016-12-06 14:02:10

标签: excel-vba vba excel

我需要有关VBA宏的帮助。我试图删除隐藏的表行,以及表头来合并多个表的范围。它们作为单独的宏工作,但是当我将宏放在一起时,我得到运行时错误' 1004':Range类的Delete方法失败:

Sub delHR()

    ' Hide table header rows
    Rows("14:15").EntireRow.Hidden = True
    Rows("26:27").EntireRow.Hidden = True

    ' Delete unselected, i.e. hidden table rows
    Dim hR As Long
    Dim lastRow

    lastRow = 50
    For hR = lastRow To 1 Step -1
    If Rows(hR).Hidden = True Then Rows(hR).EntireRow.Delete
    Next

End Sub

我已经尝试将表转换为范围(我只需要从表中选择要使用的行)但是取消隐藏未选择的行,我需要保留这些行以便删除它们。谢谢。

1 个答案:

答案 0 :(得分:2)

指定已寻址的行,以便vba知道:

(改变'ActiveWorkbook'和您需要的工作表)

Sub delHR()
With ActiveWorkbook.Worksheets("Temp")
    ' Hide table header rows
    .Rows("14:15").EntireRow.Hidden = True
    .Rows("26:27").EntireRow.Hidden = True

    ' Delete unselected, i.e. hidden table rows
    Dim hR As Long
    Dim lastRow

    lastRow = 50
    For hR = lastRow To 1 Step -1
    If .Rows(hR).Hidden = True Then .Rows(hR).EntireRow.Delete
    Next
End With
End Sub