首页 > 解决方案 > VBA QueryTable.Refresh

问题描述

我创建了一个简单的电子表格,其中包含 3 个用于数据查询和连接处理的工作表。在 m 代码中使用类似“Source = Excel.CurrentWorkbook(){[Name="TPCT_Static"]}[Content]")”的语句访问它们。处理的结果最终连接到同一工作簿中的表。当我执行一些简单的 VBA 代码(即 Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False)来请求刷新时,一切都很好——处理发生并更新了输出表。但是,使用电子表格并询问的其他任何人对于刷新,通过相同的宏,当遇到上面的 QueryTable.Refresh 代码行时,会收到错误“运行时错误 1004 - 应用程序定义或对象定义错误”。

我让人们在他们的 PC 上运行工作表,远程进入我的 PC 并尝试在那里运行它,但除了我之外的每个人都得到了错误。我的想法是某种权限问题,但所有数据都是工作簿中的本地数据。过去电子表格中有外部 SQL 查询,但这些都被删除了——真的。现在一切都是工作簿中保存的静态数据。

有任何想法吗?

谢谢,马克

标签: excelvbapowerquery

解决方案


关于“快速组合”的评论让我思考。由于我的大部分工作只为我自己工作,因此我通常将 Power Query 隐私设置为“无”。也许这就是问题的根源?因此,我将级别重置为“公共”,然后在尝试刷新时开始收到错误消息:“Formula.Firewall:查询'QueryName'(步骤'StepName')引用其他查询或步骤,因此可能不会直接访问数据源。请重建此数据组合。” 以下站点上的说明阐明了如何解决此错误。“https://www.excelguru.ca/blog/2015/03/11/power-query-errors-please-rebuild-this-data-combination/”。这是一篇非常好的文章。我不确定为什么“无”的隐私级别对每个人都不起作用,但是在参与重建之后,刷新每个人的工作。感谢所有阅读这篇文章、提出建议和思考解决方案的人。

谢谢,马克


推荐阅读