有没有办法遍历 table (listobject) 列中的可见单元格?

Is there a way to loop through the visible cells in a table (listobject) column?

在 Excel table (ListObject) 中,我已经开始跟踪数百部电影及其状态,因为我将它们翻录到光盘以在 Plex 中使用。 table 没什么特别的;它存储了您期望的内容,例如翻录文件夹、Plex 媒体文件夹、电影名称、发行年份、我存储原始光盘文件副本的备份文件夹等。我在之后创建了工作簿为了更容易跟踪,我已经拍了几百部电影。由于在创建工作簿之前我的方法不一致,我现在需要对工作簿进行一些清理。我想使用 VBA 来完成它,因为手动更正会很乏味、容易出错并且需要很长时间。我有一个算法,我相信它会起作用,但它依赖于循环遍历已过滤 table 列中可见单元格的能力——我将使用该列来确定是否需要进行任何更正在该行,然后在需要的地方,需要进行更正的列。

如有任何指导,我们将不胜感激! 谢谢

Sub Test()

Set MyTable = Worksheets("Sheet1").ListObjects("Table1")

With MyTable
    For i = 1 To .DataBodyRange.Rows.Count
        If .DataBodyRange.Rows(i).EntireRow.Hidden = False Then
            [Do Something]
        End If
    Next i
End With

End Sub

[Do Something] 替换为您希望对可见行执行的操作,例如:

Sub Test()

Set MyTable = Worksheets("Sheet1").ListObjects("Table1")

With MyTable
    For i = 1 To .DataBodyRange.Rows.Count
        If .DataBodyRange.Rows(i).EntireRow.Hidden = False Then
            .DataBodyRange(i, 3).Value = "I'm not hidden!"
        End If
    Next i
End With

End Sub

其中输入“我没有隐藏!”对于每个可见行,进入 table 的第三列。