我有一个我想要打开的工作簿,没有要求更新链接,(具体信息是:
"此工作簿包含指向其他数据源的链接。如果更新链接,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文件,以保留旧版本的文件。
非常感谢您的帮助。提前感谢您的帮助。
此致,
罗伯特
答案 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