簡體   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