[COLOR="SeaGreen"]'******************************************************************************[/COLOR]
[COLOR="SeaGreen"]'//These routines should all be placed in the ThisWorkbook module and[/COLOR]
[COLOR="SeaGreen"]'// a call made to sub OpenMyLinks from your Workbook_Open event procedure[/COLOR]
[COLOR="Navy"]Private[/COLOR] [COLOR="Navy"]Sub[/COLOR] OpenMyLinks(ByRef wb [COLOR="Navy"]As[/COLOR] Workbook, _
[COLOR="Navy"]Optional[/COLOR] blnReadOnly [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Boolean[/COLOR] = True, [COLOR="Navy"]Optional[/COLOR] blnHide [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Boolean[/COLOR] = True)
[COLOR="SeaGreen"]'Open linked sources as hidden workbooks[/COLOR]
[COLOR="SeaGreen"]'If linked source is already open, no action taken[/COLOR]
[COLOR="Navy"]Dim[/COLOR] a [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Variant[/COLOR] [COLOR="SeaGreen"]'//Array of links as filepaths[/COLOR]
[COLOR="Navy"]Dim[/COLOR] i [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Integer[/COLOR]
[COLOR="Navy"]Dim[/COLOR] strWbName [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]String[/COLOR]
[COLOR="Navy"]Dim[/COLOR] myCalc [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Integer[/COLOR]
a = wb.LinkSources(xlExcelLinks)
[COLOR="Navy"]On[/COLOR] [COLOR="Navy"]Error[/COLOR] [COLOR="Navy"]Resume[/COLOR] [COLOR="Navy"]Next[/COLOR]
[COLOR="Navy"]If[/COLOR] [COLOR="Navy"]Not[/COLOR] IsEmpty(a) [COLOR="Navy"]Then[/COLOR]
Application.DisplayAlerts = False
Application.ScreenUpdating = False
myCalc = Application.Calculation
Application.Calculation = xlCalculationManual
[COLOR="Navy"]For[/COLOR] i = LBound(a) [COLOR="Navy"]To[/COLOR] UBound(a)
[COLOR="Navy"]If[/COLOR] [COLOR="Navy"]Not[/COLOR] WorkbookIsOpen(CStr(a(i))) [COLOR="Navy"]Then[/COLOR]
wb.OpenLinks a(i), ReadOnly:=blnReadOnly
[COLOR="Navy"]If[/COLOR] blnHide [COLOR="Navy"]Then[/COLOR]
[COLOR="Navy"]Call[/COLOR] HideWb(a(i))
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]If[/COLOR]
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]If[/COLOR]
[COLOR="Navy"]Next[/COLOR] i
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]If[/COLOR]
[COLOR="Navy"]On[/COLOR] [COLOR="Navy"]Error[/COLOR] [COLOR="Navy"]GoTo[/COLOR] 0
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.Calculation = myCalc
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]Sub[/COLOR]
[COLOR="SeaGreen"]'--------------------------------------[/COLOR]
[COLOR="Navy"]Private[/COLOR] [COLOR="Navy"]Sub[/COLOR] HideWb(ByVal arg [COLOR="Navy"]As[/COLOR] String)
arg = StrReverse(Left(StrReverse(arg), InStr(1, StrReverse(arg), "\") - 1))
Windows(arg).Visible = False
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]Sub[/COLOR]
[COLOR="SeaGreen"]'--------------------------------------[/COLOR]
[COLOR="Navy"]Private[/COLOR] [COLOR="Navy"]Function[/COLOR] WorkbookIsOpen(strWbNameOrWbFullName [COLOR="Navy"]As[/COLOR] String) [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Boolean[/COLOR]
[COLOR="Navy"]Dim[/COLOR] s [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]String[/COLOR]
[COLOR="Navy"]On[/COLOR] [COLOR="Navy"]Error[/COLOR] [COLOR="Navy"]Resume[/COLOR] [COLOR="Navy"]Next[/COLOR]
s = Workbooks(Parse_FileName(strWbNameOrWbFullName)).Name
[COLOR="Navy"]If[/COLOR] Err [COLOR="Navy"]Then[/COLOR]
WorkbookIsOpen = False
[COLOR="Navy"]Else[/COLOR]
WorkbookIsOpen = True
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]If[/COLOR]
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]Function[/COLOR]
[COLOR="SeaGreen"]'--------------------------------------[/COLOR]
[COLOR="Navy"]Private[/COLOR] [COLOR="Navy"]Function[/COLOR] Parse_FileName(arg [COLOR="Navy"]As[/COLOR] String) [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]String[/COLOR]
[COLOR="Navy"]If[/COLOR] InStr(1, arg, "\", vbBinaryCompare) > 0 [COLOR="Navy"]Then[/COLOR]
Parse_FileName = _
StrReverse(Left(StrReverse(arg), InStr(1, StrReverse(arg), "\") - 1))
[COLOR="Navy"]Else[/COLOR]
Parse_FileName = arg
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]If[/COLOR]
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]Function[/COLOR]
[COLOR="SeaGreen"]'******************************************************************************[/COLOR]