我正在自动化一个过程,我打开几个IQY文件并将它们粘贴到excel中的主工作表中。目前该过程是手动的。
我可以使用VBA打开文件,例如:
set sourcebook = workbooks.open("C:\Metrics\sourceFile.iqy")
我已将通知设置为false,我将displayAlerts设置为false,既不会阻止导入数据用户表单的提示。我根本不更改设置,它当前设置为在新工作簿的表中输出数据,这很好。我只是想从流程中删除该决定/点击所以我所要做的就是运行宏,然后所有新数据都在我的主表中。
是否有.open方法的修饰符可以让我预先确定将数据放在新工作簿的表中的事情?
我考虑将IQY文件添加为数据源,但是我必须将此文件发送/共享给许多其他用户,这些用户对这些文件毫无用处,而且我不完全熟悉添加数据源/说实话。
TL; DR:打开IQY文件,无需通过VBA宏指定详细信息。
如果有人能解决这个问题我会非常感激!我整个早上一直把头发拉出来!
答案 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