我遇到了通过VBA删除文件的问题 我的代码导入一个文本文件,然后关闭导入表并删除该文本文件以选择另一个。该代码运行了大约一年,但最近两周在删除文件时出现错误
杀死 patchn & j & ".txt"' 其中
patchn
是路径
我已经上网冲浪了错误是什么以及如何修复并找到了通过PowerShell关闭和卸载进程的代码
Private Sub KillMashupContainer()
' Macro to kill power query background process that stops queried files from being deleted
Shell "taskkill.exe /f /t /im Microsoft.Mashup.Container.Loader.exe"
End Sub
但问题是有时有效有时无效。我在 KillMashupContainer 和删除文件之间暂停了,它开始正常
Call KillMashupContainer
Application.Wait (Now + TimeValue("0:00:01"))
Kill patchn & j & ".txt"
但对于某些用户来说,这种暂停的效果不少于 5 秒,而对于其他用户来说,这种暂停会立即生效。也许这只是巧合。 问题:
我的脚本从多台计算机访问文件时遇到了同样的错误。一种收集时间戳并将其写入文件,另一种打开文件以通过查询将时间戳放入表中。
这似乎是查询如何导入数据以及是否立即完成以及在查询完成之前不继续执行任何其他函数与让查询在后台运行的函数。我相信,如果有大量数据需要处理,“在后台运行”应该可以减轻处理器的压力。
Excel 中有一个设置应该可以缓解这个问题,但我发现它有点挑剔。我已取消选中“数据”>“获取数据”>“查询选项”下的“允许在后台下载数据预览”,并在“当前工作簿”下选择“数据加载”。一开始这似乎不起作用,所以我保存了工作簿然后重新打开它,它似乎仍然不起作用,但过了一会儿它就起作用了,并且随后重新打开工作簿的任何操作似乎都继续起作用。进行监控,直到您有足够的信心它会继续发挥作用。
我不知道您是否能够查看图片,因为我是该网站的新手。
我无法确定这个“流程”运行的时间范围。对我来说,它可以无限期地运行,除非我手动停止它或关闭工作簿。 上述解决方案可能适合您。