打开时关闭Excel电子表格更新链接的消息

时间:2014-04-18 16:37:03

标签: excel vba

我有一个我想要打开的工作簿,没有要求更新链接,(具体信息是:

"此工作簿包含指向其他数据源的链接。如果更新链接,Excel将尝试检索最新数据。如果您未更新链接,Excel将使用以前的信息。请注意,未经您的许可,数据链接可用于访问和共享机密信息,并可能执行其他有害行为。如果您不信任此工作簿的来源,请不要更新链接。" )

我想要做的是通过单击Internet Explorer中的文件打开工作簿并更新链接,但不要求用户单击按钮进行更新。

我在工作簿的Open Event中尝试了以下代码但没有成功:

 Private Sub Workbook_Open()
     Application.DisplayAlerts = False
     Application.ScreenUpdating = False
 End Sub

我还在上面的Sub中尝试了以下几行代码:

ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.FullName, Type:=xlExcelLinks
Application.ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.FullName, Type:=xlExcelLinks
Application.ActiveWorkbook.UpdateLink
Workbooks.Open ActiveWorkbook, UpdateLinks:=True
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources, Type:=xlExcelLinks

MS Excel 2010的版本并保存为.xls文件,以保留旧版本的文件。

非常感谢您的帮助。提前感谢您的帮助。

此致,

罗伯特

3 个答案:

答案 0 :(得分:11)

以防这可能会对将来的任何人有所帮助,以下是我所做的:

Private Sub Workbook_Activate()
   Application.AskToUpdateLinks = False

End Sub

这会阻止更新链接消息框在文件打开时出现。

罗伯特

答案 1 :(得分:3)

只是添加到Robert的(@ user2320821)回答 -

我必须将代码修改为:

Sub Workbook_Open()
   Application.DisplayAlerts = False
   Application.AskToUpdateLinks = False
   Application.DisplayAlerts = True
End Sub

关键区别在于

1)这是一个Workbook_Open子而不是Workbook_Activate子。 Activate sub未禁止更新链接请求。

2)即使在第一个更新链接请求被抑制后,我也必须抛出一个DisplayAlerts标志来切换以禁止关于链接未被更新的第二个警告。

如果在罗伯特的答案中并不明显,那么当我把它放在ThisWorkbook对象中时,这个子工作了。

答案 2 :(得分:0)

我正在我的vba .xlm文件中使用此代码。

Private Sub Workbook_Open()
ThisWorkbook.UpdateLinks = xlUpdateLinksNever
End Sub

M Office2013