gpt4 book ai didi

VBA:查看文件是否打开的两种方法

转载 作者:行者123 更新时间:2023-12-03 00:25:37 26 4
gpt4 key购买 nike

我有两种方法,我认为应该可以判断文件是否打开。

方法 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

除了出现错误时继续下一步之外,方法 1 似乎与方法 2 几乎相同。

谁能解释一下为什么方法1会给出这样的错误吗?

谢谢。

最佳答案

它们都给出了下标超出范围的错误。但在方法 2 中,您可以使用 On Error Resume Next 抑制该错误。

Sub SeeError()

On Error Resume Next
Debug.Print Workbooks("DoesNotExist").Name

Debug.Print Err.Description

End Sub

这会在立即窗口中打印“下标超出范围”。 On Error 语句不会阻止错误发生,它只是处理错误。方法 1 不处理错误,因此默认错误处理(停止执行并报告错误)生效。

关于VBA:查看文件是否打开的两种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30946292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com