【问题标题】:VBA: How do you prevent a QueryTable from refreshing?VBA:如何防止 QueryTable 刷新?
【发布时间】:2010-10-18 02:50:16
【问题描述】:

我编写了一个宏,它使用 QueryTable 将 CSV 文件导入到我的电子表格中。我的目标是导入 CSV 数据并能够将其保存在电子表格中以供将来参考。

但是,QueryTable 会使用外部 CSV 文件进行更新,当然,我想防止这种情况发生(因为我想忘记外部文件)。是否有我可以用来防止刷新的 QueryTable 设置,或者这是完全使用错误的功能?

【问题讨论】:

    标签: excel vba csv import


    【解决方案1】:

    好吧.. 如果您的目标是导入数据而不是使数据保持最新(即再次使用 CSV 刷新),那么在您的 VBA 结束时,在查询表的 .Refresh 命令之后,只需删除查询表。

    例如
    Sheet1.QueryTables(1).Refresh (False)
    Sheet1.QueryTables(1).Delete

    请务必将 False 传递给刷新命令,以要求 Excel 进行前台查询,您的代码执行将一直持续到您将数据输入其中。然后您添加查询表的单元格将被视为常规单元格。

    【讨论】:

      【解决方案2】:

      您可以使用 VBA 将 CSV 作为工作簿打开。像这样。

      Set myCSVbook = Workbooks.Open Filename:="C:\dir\myfile.csv", Format:=2 '2 is csv
      

      完成此操作后,您可以复制单个单元格,也可以将整个工作表复制到另一工作簿中的一行中。我认为 Worksheet 对象上有一个 Copy 方法可以做到这一点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-25
        • 2020-01-25
        • 2014-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多