【问题标题】:Excel VBA and XML - clear table dataExcel VBA 和 XML - 清除表格数据
【发布时间】:2014-05-30 21:19:12
【问题描述】:

我创建了一个包含多个工作表的电子表格,每个工作表都包含来自多个不同 XML 文件的 XML 映射表元素。

我正在使用 VBA 通过指向当前目录中的给定文件名来刷新数据。但是,如果该文件不存在,我希望它清除 XML 表中的所有现有数据。

如果我删除地图,数据仍然存在并且链接丢失。

类似的东西(我不知道正确的语法):

Sub ClearTables()
Dim mySheet As Worksheet
Dim myTable As ListObject

For Each mySheet In ThisWorkbook.Worksheets
    For Each myTable In mySheet.ListObjects
        'MsgBox myTable.Name
        myTable.DataBodyRange.Select
        ActiveCell.ClearContents
    Next myTable
Next mySheet
End Sub

有没有人对我如何实现这一点有任何想法。当我希望在宏请求时将它们全部清除时,我宁愿不必参数化和设置近 50 多个表的名称。

我一直得到一个错误“对象变量或未设置块变量”。

更新:我已经设法通过测试空表来解决这个问题。问题是由于一些表已经是空的。我使用的代码如下:

Sub ClearTables()
Dim mySheet As Worksheet
Dim myTable As ListObject

For Each mySheet In ActiveWorkbook.Worksheets
    For Each myTable In mySheet.ListObjects
        'MsgBox myTable.Name
        'myTable.DataBodyRange.ClearContents
        If Not myTable.DataBodyRange Is Nothing Then
            myTable.DataBodyRange.ClearContents
        End If
    Next myTable
Next mySheet
End Sub

【问题讨论】:

    标签: xml vba excel excel-2010


    【解决方案1】:

    怎么样:

    For Each mySheet In ThisWorkbook.Sheets
        For Each myTable In mySheet.ListObjects
            myTable.DataBodyRange.ClearContents
        Next myTable
    Next mySheet
    

    请注意,代码不会测试对象是否为表格...实际上我不确定您在工作表中可能还有哪些其他 ListObject - 类对象。

    【讨论】:

    • 感谢您的快速回复 - 由于某种原因,它似乎不起作用。它抱怨“对象变量或未设置块变量”
    • 这意味着所引用的事物之一不存在。 Excel 文件中的工作簿对象是否真的命名为ThisWorkbook?无论如何,可以肯定的是,更安全的方法是Application.Workbooks("workbook_name"),因为您可能会从另一个无权访问ThisWorkbook 作为对象的VBA 项目中运行代码,因此需要以某种方式检索它。 :-)
    • 我真的很抱歉,但我迷路了。我认为一切都被正确引用,我无法理解为什么它不起作用。我正在使用的代码已包含在我的原始帖子中。
    • 好,我们一步一步来: 1) ClearTables 子程序是否和Workbook-class 对象ThisWorkbook 存储在同一个项目中? 2) 除了表格(例如图表)之外,工作表中是否还嵌入了其他对象?
    • 哇哦!好的,我似乎已经修复了它 - 问题是其中一张表是空的,所以它无法清除内容而不会出现错误。我不得不在那里进行测试以忽略空表。我会单独发布代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 2023-01-14
    • 2013-10-19
    相关资源
    最近更新 更多