我正在尝试编写一个可以打开许多Excel文件的脚本。我一直收到提示:
This workbook contains links to other data sources.
我希望不显示此消息,这样我的脚本就可以自动遍历所有工作簿,而不必为每个工作簿单击Don't Update
。目前,我正在使用以下内容:
function getWorkbook(bkPath as string) as workbook
Application.EnableEvents=False
Application.DisplayAlerts=False
getWorkbook=Workbooks.Open(bkPath,updatelinks:=0,readonly:=false)
end function
但是,该消息仍在显示。我该如何抑制它呢?
编辑:这条消息似乎是针对具有断开链接的工作簿出现的;我没有看到This workbook contains one or more links that cannot be updated
消息,因为我将DisplayAlerts
设置为false。工作簿链接到Windows服务器上某个文件夹中的等效文件,因此当从该文件夹中删除匹配的文件时(这是我们业务流程的一部分),链接就会断开。有没有可能在链接断开时抑制警告?
另外,我正在使用Excel2010。
发布于 2013-02-17 02:43:47
我已经找到了一个临时的解决方案,至少可以让我处理这项工作。我写了一个简短的AutoIt脚本,等待“更新链接”窗口出现,然后单击“不更新”按钮。代码如下:
while 1
if winexists("Microsoft Excel","This workbook contains links to other data sources.") Then
controlclick("Microsoft Excel","This workbook contains links to other data sources.",2)
EndIf
WEnd
到目前为止,这似乎是有效的。然而,我真的很想找到一个完全是VBA的解决方案,这样我就可以使它成为一个独立的应用程序。
发布于 2016-08-17 13:24:04
Excel 2016我在创建工作簿/文件时遇到了类似的问题,然后我更改了名称,但不知何故旧的工作簿名称被保留了下来。在谷歌了很多次之后...好吧,我没有找到任何最终的答案...
转到DATA ->编辑链接->启动提示符(在底部),然后选择最适合您的选项。
发布于 2013-05-17 08:06:58
当在Excel中手动打开我的工作簿(而不是通过VBA以编程方式打开它)时,我想抑制询问您是否希望更新指向另一个工作簿的链接的提示。我尝试在Auto_Open()
宏中包含:Application.AskToUpdateLinks = False
作为第一行,但不起作用。然而,我发现如果你把它放在ThisWorkbook
模块的Workbook_Open()
函数中,它就能出色地工作-对话框被抑制了,但更新仍然在后台静默地进行。
Private Sub Workbook_Open()
' Suppress dialog & update automatically without asking
Application.AskToUpdateLinks = False
End Sub
https://stackoverflow.com/questions/14908372
复制相似问题