У меня есть два метода, которые, как мне кажется, должны указывать, открыт ли файл.VBA: Два метода просмотра, если файл открыт
Метод 1 (Ошибка: Подстрочный вне диапазона):
If Not Workbooks(filename) Is Nothing Then
Workbooks.Open (filename)
End If
Способ 2:
If Not IsWorkbookOpen(filename) Then
Workbooks.Open (filename)
End If
Где IsWorkbookOpen()
находится:
Private Function IsWorkbookOpen(wbname) As Boolean
Dim wBook As Workbook
Set wBook = Nothing
On Error Resume Next
Set wBook = Workbooks(wbname)
If wBook Is Nothing Then
IsWorkbookOpen = False
Else: IsWorkbookOpen = True
End If
End Function
Помимо On Error Resume Next
, Способ 1 представляется практически таким же, как Способ 2.
Может ли кто-нибудь объяснить, почему Способ 1 дает ошибку?
спасибо.
Не могли бы вы уточнить? Почему ваши два примера отличаются друг от друга? Я также думаю, что вы хотели использовать myvar в своей декларации, а не просто var. – ale10ander
Я отредактировал мое сообщение, чтобы добавить более подробную информацию. Дайте мне знать, если вам нужно уточнить. –
Спасибо! Теперь я понимаю, что вы говорите, но я смущен тем, что debug.print «покажет». Мое понимание кода и вашего объяснения состоит в том, что этот текст никогда не будет отображаться. – ale10ander