我正在尝试使用下面的代码将查询表从vba转换为excel表 .
Set tableRange = Sheets("Fund Performance").Range(Range("C7"),Range("I7").End(xlDown))
On Error Resume Next:
Sheets("Fund Performance").ListObjects.Add(xlSrcRange, tableRange, , xlYes).Name = Symbol
On Error GoTo 0
没有"On Error Resume Next"我得到一个错误1004表不能与包含数据透视表报告, query results ,受保护的单元格或另一个表的范围重叠 .
如果我包含它,则不会显示错误,但也不会创建表 .
有关处理这个或替代方法从查询表创建excel表的任何建议吗?
1 回答
虽然这不能解决您问题的主要观点,但我想指出定义您的 Sheets("Fund Performance").Range 的Range object没有明确的工作表父级 . 当依靠ActiveSheet property来定义父工作表时,这可以产生一个,
最佳做法是显式定义构造Range对象的所有父工作表引用 .
在后者With ... End With statement方法中,注意使用
.Range
而不是Range
. 前缀句点带有对With ... End With块中记录的父工作表的引用 . 这意味着父工作表引用仅 Build 一次并重用 . 在前一个详细方法中, Build 父工作表引用并重新 Build 三次 .