【发布时间】:2010-10-18 02:50:16
【问题描述】:
我编写了一个宏,它使用 QueryTable 将 CSV 文件导入到我的电子表格中。我的目标是导入 CSV 数据并能够将其保存在电子表格中以供将来参考。
但是,QueryTable 会使用外部 CSV 文件进行更新,当然,我想防止这种情况发生(因为我想忘记外部文件)。是否有我可以用来防止刷新的 QueryTable 设置,或者这是完全使用错误的功能?
【问题讨论】:
我编写了一个宏,它使用 QueryTable 将 CSV 文件导入到我的电子表格中。我的目标是导入 CSV 数据并能够将其保存在电子表格中以供将来参考。
但是,QueryTable 会使用外部 CSV 文件进行更新,当然,我想防止这种情况发生(因为我想忘记外部文件)。是否有我可以用来防止刷新的 QueryTable 设置,或者这是完全使用错误的功能?
【问题讨论】:
好吧.. 如果您的目标是导入数据而不是使数据保持最新(即再次使用 CSV 刷新),那么在您的 VBA 结束时,在查询表的 .Refresh 命令之后,只需删除查询表。
例如
Sheet1.QueryTables(1).Refresh (False)
Sheet1.QueryTables(1).Delete
请务必将 False 传递给刷新命令,以要求 Excel 进行前台查询,您的代码执行将一直持续到您将数据输入其中。然后您添加查询表的单元格将被视为常规单元格。
【讨论】:
您可以使用 VBA 将 CSV 作为工作簿打开。像这样。
Set myCSVbook = Workbooks.Open Filename:="C:\dir\myfile.csv", Format:=2 '2 is csv
完成此操作后,您可以复制单个单元格,也可以将整个工作表复制到另一工作簿中的一行中。我认为 Worksheet 对象上有一个 Copy 方法可以做到这一点。
【讨论】: