所以我有这段代码来更新我的Excel工作簿中的链接
Dim alertTime As Date
Public Sub Refresh()
'refresh
ActiveWorkbook.UpdateLink (ActiveWorkbook.LinkSources)
'Workbooks("Requests").UpdateLink (Workbooks("Requests").LinkSources)
alertTime = Now + TimeValue("00:00:05") 'hh:mm:ss
Application.OnTime alertTime, "Refresh"
Debug.Print Now() & " - Links Updated"
'MsgBox "5 Seconds have passed, refreshing", vbInformation, "Debug"
End Sub
Sub StopRefresh()
Application.OnTime alertTime, "Refresh", , False
End Sub
代码可以工作,但是只要我打开另一个工作簿并刷新触发器就会出错。我希望能够针对刷新命令定位该特定工作簿。
欢迎任何帮助。
答案 0 :(得分:0)
您可能需要将表格放得像:
workbooks("Requests").Sheets("Sheetname").UpdateLink(Workbooks("Requests").Sheets("Sheetname").LinkSources)
答案 1 :(得分:0)
您的声明ActiveWorkbook.UpdateLink (ActiveWorkbook.LinkSources)
更新“有效”工作簿中的链接。这是您目前正在处理的工作簿。当您打开新工作簿时,新工作簿将成为活动工作簿。
而不是ActiveWorkbook.UpdateLink (ActiveWorkbook.LinkSources)
试试这个:
Workbooks("nameOfWorkbook").UpdateLink (Workbooks("nameOfWorkbook").LinkSources)
其中nameOfWorkbook是您要更新链接的工作簿(即文件名,扩展名和路径,如果需要)的文件名。例如,
Workbooks("Requests.xlsb").UpdateLink (Workbooks("Requests.xlsb").LinkSources)
如果活动目录与保存Requests.xlsb的目录不同,则必须包含完整路径,如下所示:
Workbooks("C:\Users\yourID\Documents\Requests.xlsb").UpdateLink _
(Workbooks("C:\Users\yourID\Documents\Requests.xlsb").LinkSources)
或更简洁:
With Workbooks("C:\Users\yourID\Documents\Requests.xlsb")
.UpdateLink .LinkSources
End with