我在Excel中有一个3000行到50列的数据集,从A1开始。
我录制并编辑了一个模拟以下内容的宏: Ctrl + A ,格式如表:
Dim koosrange As Range
Set koosrange = ActiveSheet.UsedRange
koosrange.Select
ActiveSheet.QueryTables("aspectsClean_1").Delete
ActiveSheet.QueryTables("aspectsClean").Delete
ActiveSheet.ListObjects.Add(xlSrcRange, koosrange, , xlNo).Name = _
"Table1"
Range("Table1[#All]").Select
ActiveSheet.ListObjects("Table1").TableStyle = "TableStyleLight1"
ActiveSheet.ListObjects("Table1").ShowTableStyleFirstColumn = True
整个计划由3部分组成:
运行程序时,ActiveSheet.ListObjects.Add(xlSrcRange, koosrange, , xlNo).Name = _
"Table1"
上发生以下错误(上一代码摘录的第6行):
错误:A table cannot overlap a range that contains a PivotTable report, query results, protected cells or another table
答案 0 :(得分:0)
继续我的评论,如果您使用录音机录制导入>从文本文件中,它将使用的方法是添加连接到文本文件的可查询对象,然后刷新它。
根据某些情况 - 我并不完全熟悉在这种情况下正在运行的不同对象 - 如果创建它们,则必须删除连接对象和可查询对象。
E.g。我刚才做的录音:
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;{snipped path}", Destination:=Range("$A$1"))
.Name = "new 2"
'+some other properties churned out removed here for conciseness
.Refresh BackgroundQuery:=False
End With
因此,请在End With
:
If Not ActiveWorkbook.Connections(.Name) Is Nothing Then
ActiveWorkbook.Connections(.Name).Delete
End If
.Delete
End With