我写了一个宏,使用QueryTable将CSV文件导入我的电子表格。我的目标是导入CSV数据,并将其保存在电子表格中以供将来参考。
但是,QueryTable当然会更新外部CSV文件,我想阻止它(因为我想忘记外部文件)。我可以使用QueryTable设置来防止刷新,或者这是完全使用的错误功能吗?
答案 0 :(得分:5)
嗯..如果您的目标是导入数据而不是保持最新数据(即使用CSV再次刷新),那么在查询表的.Refresh命令后,在VBA结束时,只需删除查询表。
e.g。
Sheet1.QueryTables(1).Refresh(False)
Sheet1.QueryTables(1).Delete
确保将False传递给刷新命令以要求Excel执行forground查询,其中代码执行将持续到您获取数据为止。然后,您添加查询表的单元格将被视为常规单元格。< / p>
答案 1 :(得分:1)
您可以使用VBA将CSV作为工作簿打开。这样的事情。
Set myCSVbook = Workbooks.Open Filename:="C:\dir\myfile.csv", Format:=2 '2 is csv
完成后,您可以复制单个单元格,也可以将整个工作表复制到一行中的另一个工作簿中。我认为在Worksheet对象上有一个Copy方法可以做到这一点。