Мой код работает отлично, когда VBE открыт на втором экране, но не удается найти лист, когда VBE закрыт, и отображает MsgBox
.
Открываемая книга довольно большая и медленно открывается.
Я добавил DoEvents
, но это, похоже, не имело значения.
Любая подсказка?
'some code.....
Set wbSrc = Workbooks.Open(filename:=filename, UpdateLinks:=False, ReadOnly:=True)
DoEvents
Set shSrc = getSheetByCodeName(wbSrc, "Sheet3")
If shSrc Is Nothing Then
MsgBox "Couldn't find sheet"
Exit Sub
End If
'continues....
Function getSheetByCodeName(wb As Workbook, codeName As String) As Worksheet
'given wb object and codeName string, returns a ref to the sheet in wb that has that codeName
'returns Nothing if nothing found
Dim sh As Worksheet
For Each sh In wb.Sheets
If sh.codeName = codeName Then
Set getSheetByCodeName = sh
Exit Function
End If
Next sh
Set getSheetByCodeName = Nothing
End Function