行在 之后被隐藏。尽管使用 EntireRow.Hidden=False 但仍从表中删除 RemoveDuplicates

Rows getting hidden after .RemoveDuplicates from a table despite using EntireRow.Hidden=False

提问人:user19600963 提问时间:11/7/2023 最后编辑:user19600963 更新时间:11/8/2023 访问量:31

问:

我想使用 VBA 从表(“Daten”)中删除重复项。

使用下面的代码时,整个表格之后都会被隐藏。

Sub RemoveDuplicates()
Dim rng As Range

    Set rng = ThisWorkbook.Sheets("1. Einfügen aller Touren").ListObjects("Daten").DataBodyRange
    rng.RemoveDuplicates Columns:=6, Header:=xlYes
    
Worksheets("1. Einfügen aller Touren").Rows.EntireRow.Hidden = False

End Sub

即使在使用 .Rows.EntireRow.Hidden = False 它仍然隐藏

Worksheets("1. Einfügen aller Touren").Rows.EntireRow.Hidden = False

但是,在另一个模块中取消隐藏行。

VBA Excel-2007

评论


答:

1赞 Armaan Farshori 11/7/2023 #1

您面临的问题似乎是,当您使用VBA从“Daten”表中删除重复项时,整个表都会被隐藏,并且您希望在删除重复项后取消隐藏行。您遇到的问题可能与 Excel 处理表中行的可见性的方式有关。

您可以尝试以下VBA代码来删除重复项并取消隐藏表中的行:

    Sub RemoveDuplicatesAndUnhide()
    Dim ws As Worksheet
    Dim tbl As ListObject
    Dim rng As Range

    ' Set the worksheet and table references
    Set ws = ThisWorkbook.Sheets("1. Einfügen aller Touren")
    Set tbl = ws.ListObjects("Daten")

    ' Set the range within the table's data body
    Set rng = tbl.DataBodyRange

    ' Remove duplicates
    rng.RemoveDuplicates Columns:=6, Header:=xlYes

    ' Unhide all rows within the table
    tbl.DataBodyRange.Rows.Hidden = False
End Sub