【问题标题】:Excel VBA deleting hidden table rowsExcel VBA删除隐藏的表格行
【发布时间】:2016-12-06 14:02:10
【问题描述】:

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

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

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

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    指定寻址的Rows,以便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
    

    【讨论】:

    • 成功了,谢谢@Bernd Stoeckell。但仍然出现相同的运行时错误。
    • 哦,它对我有用。您在工作表上有任何形状或控件吗? (它们可能会在使用单元格移动/调整大小时引起问题),保护呢,您需要先取消保护吗?
    • 没有保护,但有些控件在工作表顶部带有按钮大小。我已经在没有控件的新工作表上进行了尝试,但仍然出现错误。这就是它的问题:'If .Rows(hR).Hidden = True Then .Rows(hR).EntireRow.Delete'。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    • 2015-08-06
    • 2016-03-29
    • 1970-01-01
    • 2014-08-07
    相关资源
    最近更新 更多