Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA通过选择新文本文件而不添加新表来刷新数据连接_Vba_Excel_Data Connections - Fatal编程技术网

VBA通过选择新文本文件而不添加新表来刷新数据连接

VBA通过选择新文本文件而不添加新表来刷新数据连接,vba,excel,data-connections,Vba,Excel,Data Connections,因此,我一直在试图找出如何做到这一点,但我只能让VBA添加新的连接,而不能刷新当前连接(没有提示用户) 基本上,我有很多东西需要一次刷新,如果我可以运行这个宏,让它为我做所有的刷新,而不必手动选择十几个文本文件,那就容易多了 到目前为止,我能够开始工作的唯一版本是: Set RefreshWorkbook = ThisWorkbook.Sheets(4).QueryTables _ .Add(Connection:=strFilename, _ Destination:=declinerefre

因此,我一直在试图找出如何做到这一点,但我只能让VBA添加新的连接,而不能刷新当前连接(没有提示用户)

基本上,我有很多东西需要一次刷新,如果我可以运行这个宏,让它为我做所有的刷新,而不必手动选择十几个文本文件,那就容易多了

到目前为止,我能够开始工作的唯一版本是:

Set RefreshWorkbook = ThisWorkbook.Sheets(4).QueryTables _
.Add(Connection:=strFilename, _
Destination:=declinerefresh.Cells(1, 1))

With RefreshWorkbook
    .TextFilePromptOnRefresh = False
    .TextFileCommaDelimiter = True
    .Refresh
End With
不幸的是,这意味着每次运行此脚本时,它都会在工作簿中创建新的连接。我希望能够运行某种脚本,基本上刷新工作簿并打开新文件,而不需要任何用户输入(因为每天我都要运行一堆不同的报告并编译它们进行比较,哦,我不能删除旧的报告)


谢谢你的建议

ActiveWorkbook.RefreshAll
?或者工作簿(“”).RefreshAll`所以我想办法避开这个对话框,告诉Excel以最少的用户输入获取哪些文件。基本上,我让VBA查看8个文件夹,并从每个文件夹中获取最新的文档。我这样做是为了减少人为错误,因为有时人们会拉错误的文档。为什么不删除旧的连接呢?显然,最简单的解决方案我不知道。想想看吧