在vba中使用IQY文件禁用“导入数据”提示

时间:2014-10-06 17:33:50

标签: excel vba excel-vba

我正在自动化一个过程,我打开几个IQY文件并将它们粘贴到excel中的主工作表中。目前该过程是手动的。

我可以使用VBA打开文件,例如:

set sourcebook = workbooks.open("C:\Metrics\sourceFile.iqy")

我已将通知设置为false,我将displayAlerts设置为false,既不会阻止导入数据用户表单的提示。我根本不更改设置,它当前设置为在新工作簿的表中输出数据,这很好。我只是想从流程中删除该决定/点击所以我所要做的就是运行宏,然后所有新数据都在我的主表中。

是否有.open方法的修饰符可以让我预先确定将数据放在新工作簿的表中的事情?

我考虑将IQY文件添加为数据源,但是我必须将此文件发送/共享给许多其他用户,这些用户对这些文件毫无用处,而且我不完全熟悉添加数据源/说实话。

TL; DR:打开IQY文件,无需通过VBA宏指定详细信息。

如果有人能解决这个问题我会非常感激!我整个早上一直把头发拉出来!

1 个答案:

答案 0 :(得分:1)

请参阅此链接https://msdn.microsoft.com/en-us/library/office/aa203721(v=office.11).aspx

中的“使用动态Web查询”部分

这对我有用: 使用动态Web查询

Sub Finder_Get_Query()
    'Edit path to .iqy file, if necessary.
    IQYFile = "C:\Program Files\Microsoft Office\OFFICE11\" & _
       "QUERIES\MSN MoneyCentral Investor Currency Rates.iqy"
    With ActiveSheet.QueryTables.Add(Connection:= _
       "FINDER;" & IQYFile, Destination:=Range("A1"))

        .BackgroundQuery = True
        .TablesOnlyFromHTML = True
        .Refresh BackgroundQuery:=False
        .SaveData = True
    End With
End Sub