繁体   English   中英

如何在不提示输入目的地的情况下打开 IQY 文件?

[英]How can I open an IQY file without being prompted for a destination?

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

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

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

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

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

我已经考虑将 IQY 文件添加为数据源,但我必须将此文件发送/共享给许多其他用户,这些用户对这些文件没有用处,而且我对添加数据源/连接也不完全熟悉诚实的。

请参阅此链接中的“使用动态 Web 查询”部分https://msdn.microsoft.com/en-us/library/office/aa203721(v=office.11​​).aspx

这对我有用:

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

工作完美! 只需稍加修改,您就可以定义导入的目标工作表(以防您有多个 *.IQY 文件要连接)

strTargetSheet = "您的工作表名称"

StrSourceConnection = "您的 IQY 文件位置"

从任何其他程序进行调用....

调用 Finder_Get_Query(strTargetSheet, strSourceConnection)

Sub Finder_Get_Query(strSheet As String, strConnection As String)
Dim IQYFile As String

ThisWorkbook.Sheets(strSheet).Select
 
IQYFile = strConnection
With ActiveSheet.QueryTables.Add(Connection:= _
   "FINDER;" & IQYFile, Destination:=Range("A1"))

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM