链接到工作簿closures时更新链接的VBA代码

我有一个工作簿,其中有链接到其他工作簿的数量。 理想情况下,我想编写代码:当我打开包含链接的工作簿时,将更新链接,但仅当链接的工作簿未打开时(无论是在我的PC上还是在networking上的其他用户的PC上,都可以访问它)。 这是因为:

  • a)如果工作簿已经打开,链接应该更新,
  • b)更新已经打开的工作簿的链接似乎会导致错误。

我希望我有道理,请告诉我,如果我不是。 谢谢。

尝试这个

Sub UpdateLinks() Dim v As Variant, i As Long v = ThisWorkbook.LinkSources(XlLink.xlExcelLinks) For i = 1 To UBound(v) If Not FileInUse(v(i)) Then Workbooks.Open (v(i)) End If Next i ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources End Sub Public Function FileInUse(sFileName) As Boolean 'Checks if a workbook is open On Error Resume Next Open sFileName For Binary Access Read Lock Read As #1 Close #1 FileInUse = IIf(Err.Number > 0, True, False) On Error GoTo 0 End Function