【问题标题】:Loop through three worksheets and delete table data in each sheet循环遍历三个工作表并删除每个工作表中的表数据
【发布时间】:2020-12-03 11:25:24
【问题描述】:

我将下面的函数放在一起,循环遍历工作簿中的三个特定工作表,并删除每个工作表中表格的表格内容。

我明白了

'运行时错误 9,下标超出范围'

当我调试时

For Each tbl In Sheets(Sht).ListObjects

突出显示。

Sub ClearTableData()

    Application.ScreenUpdating = False
    
    Dim tbl As ListObject
    Dim Sht As Variant
    
    'Loop through each sheet and table in the workbook
    For Each Sht In Array("Sheet1", "Sheet2", "Sheet3")
        For Each tbl In Sheets(Sht).ListObjects
            'Delete table rows
            tbl.DataBodyRange.Delete
        Next tbl
    Next Sht
    
    Application.ScreenUpdating = True

End Sub

【问题讨论】:

  • 知道错误发生在哪里会很有帮助
  • 嗨 Andreas,当我查看调试时,'For Each tbl In Sheets(Sht).ListObjects' 行以黄色突出显示。
  • 下标错误 9 表示它不存在。你有三张上面写着这些名字的纸吗?不是代号,而是选项卡上的工作表名称?
  • 嗨,Darrell,是的,这三个工作表名称确实存在。谢谢。

标签: excel vba loops


【解决方案1】:

我检查了相关标签的拼写,发现有人在“Sheet2”的末尾放置了一个空格,因此无法识别。感谢达雷尔的想法。

【讨论】:

    猜你喜欢
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    相关资源
    最近更新 更多