简体   繁体   English

在多个特定工作表中循环遍历列表对象

[英]Looping through listobjects in multiple specific sheets

I've been trying to loop though list objects in multiple specific sheets, in order to check if the list objects contains data, however it does not seem to work: 我一直在尝试遍历多个特定工作表中的列表对象,以检查列表对象是否包含数据,但是它似乎不起作用:

Dim SheetsArray_Reports As Sheets
Dim ListObject_Reports As ListObject

Set SheetsArray_Reports = ThisWorkbook.Worksheets(Array(All_CleaningRangeReport.Name, SD_CleaningRangeReport.Name, SC_CleaningRangeReport.Name, Excl_CleaningRangeReport.Name))

For Each ListObject_Reports In SheetsArray_Reports

        If Not ListObject_Reports.DataBodyRange Is Nothing Then

            ListObject_Reports.DataBodyRange.Delete

        End If

Next ListObject_Reports

You're looping through the worksheets and not the listobjects so you cannot refer to them in your for loop in this manner. 您正在遍历工作表而非列表对象,因此无法以这种方式在for循环中引用它们。 Try using 尝试使用

Dim SheetsArray_Reports As Sheets
Dim ws As Worksheet
Dim ListObject_Reports As ListObject

Set SheetsArray_Reports = ThisWorkbook.Worksheets(Array(All_CleaningRangeReport.Name, SD_CleaningRangeReport.Name, SC_CleaningRangeReport.Name, Excl_CleaningRangeReport.Name))

For Each ws In SheetsArray_Reports
    ' Use if only 1 listobject per worksheet if more you will have to loop through them with something like:
        'For Each ListObject_Reports In ws.ListObjects
        '
        'Next ListObject_Reports
    Set ListObject_Reports = ws.ListObjects(1)

    If ListObject_Reports.DataBodyRange.Rows.Count > 1 Then
        ListObject_Reports.DataBodyRange.Delete
    End If
Next ListObject_Reports

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM