预先感谢您的帮助!
在VBA中,我使用以下代码从存储在Sharepoint中的IQY文件中提取数据(由于出现“导入数据”提示,Workbooks.Open并不是一个很好的选择):
Function getIQYWorkbook(ByVal filename As String) As Workbook
Dim wb As Workbook
Set wb = Workbooks.Add
Dim IQYFile As String
IQYFile = ThisWorkbook.Path & "/" & filename
With wb.Sheets("Sheet1").QueryTables.Add(Connection:= _
"FINDER;" & IQYFile, Destination:=Range("A1"))
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SaveData = True
End With
Set getIQYWorkbook = wb
End Function
但是,如此令人费解的是,导入的数据 not 对应于我传入的实际文件。无论传入什么,Sharepoint中的一个特定IQY文件文件夹已下载。令人沮丧的是,此函数在传递不同文件名的循环中被调用。
例如,当我使用以下代码时(请注意,将文件路径设置为单词“ dogs”,这很荒谬),该同一个共享点文件仍然被拉入。
Function getIQYWorkbook(ByVal filename As String) As Workbook
Dim wb As Workbook
Set wb = Workbooks.Add
Dim IQYFile As String
IQYFile = "dogs"
With wb.Sheets("Sheet1").QueryTables.Add(Connection:= _
"FINDER;" & IQYFile, Destination:=Range("A1"))
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SaveData = True
End With
Set getIQYWorkbook = wb
End Function
此问题在重新启动/关闭Excel /等过程中一直存在。...好像QueryTables.Add被“卡住”在拉同一个文件中,而不管我传递的是哪个文件路径。发生什么情况了吗?
非常感谢您!
答案 0 :(得分:0)
我知道到现在这个问题已经很老了,但是我在任何地方都没有找到解决这个问题的方法。我只看到2条关于该问题的参考书。
我发生了同样的问题。我能正常工作的另外两个示例,我也测试了另一个能正常工作的示例。
我的结论是SharePoint列表正在生成错误或损坏的.IQY文件。我尝试了各种从SharePoint列表中导出的操作,但都失败了。因此,我没有解决方案!我的解决方法是在O365中使用Power Query来访问Excel文件中的数据。这样可以避免.IQY文件出现弹出窗口。