Excel VBA和XML – 清除表格数据

我创build了一个包含多个工作表的电子表格,每个工作表都包含来自许多不同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 +表的名字,当我希望他们都在macros的乞讨清除。

我一直得到的是一个错误“对象variables或块variables未设置”。

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

 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 

怎么样:

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

请注意,代码不testing对象是否是一个表…实际上我不知道你可能在工作表中有什么其他的ListObject类对象。