【发布时间】: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