使用VBA

时间:2015-06-14 10:57:56

标签: excel vba excel-vba

使用VBA(.RefreshAll)刷新带有pivot的工作簿(外部链接到包含数据的另一个Excel文件)时,会出现一个标题为" Data Link Properties"弹出。

我试图用DoEvents延迟来抑制对话框,Application.ScreenUpdating = False,Application.DisplayAlerts = False,OLEDB.BackgroundQuery = False。但似乎没有任何效果。

为了使问题更加混乱,对话框不会定期弹出。有时它确实如此,有时它不会。

我的调试尝试只导致了一个理论:它可能是由数据文件的大小引起的,因此内存Excel占用了RAM。当这两个都很小时,对话框似乎不会弹出。当文件接近10mb以上时,对话框变得更加频繁。所以我觉得它与内存有关,即使有至少1 GB的可用内存。这没有任何意义,但我已经没有想法了。

另一条线索:如果我在数据链接属性上单击取消并单击功能区上的RefreshAll按钮:它会显示"未指定的错误"和其他与数据文件相关的错误,即使路径有效,文件也存在。

如果我退出整个Excel应用程序,重新打开然后刷新,它只会在没有任何对话框的情况下刷新。

(关闭Excel应用程序并通过脚本重新打开它不是我的选项,因为它会搞乱我的调用堆栈并结束执行流程。)

我发现只有两个人在讨论这个问题: First has no replies我无法理解the second one的内容。

4 个答案:

答案 0 :(得分:0)

我今天遇到了同样的问题。似乎工作簿中可以有多少连接存在限制。我一直收到“未指定的错误”,然后是数据链接属性。限制似乎是70.我能够通过回到我的单独工作簿并更多地缩小标签来解决它。希望这有帮助!

答案 1 :(得分:0)

我发现在连接字符串中有一个字符串"数据源"包含文件名路径,没有"用filename.wen签名我保留了filenamepath在这里工作但是我试图用变量包含filenamepath替换它弹出窗口数据链接属性...它解决方案必须与此有关

答案 2 :(得分:0)

有类似的问题并通过更改

解决了
 Mode=Share Deny None; 

在连接属性中。

也许多个连接正在打开单独的访问实例,并且相互冲突会造成冲突。

答案 3 :(得分:0)

只需在opendatabase之前启动SendKeys,即:

SendKeys“〜”,True'包括等待对话框打开

SendKeys“〜”,True'并按“ok”(按回车)

Workbooks.OpenDatabase _ ...