gpt4 book ai didi

vba - Excel VBA 检查工作簿是否打开,如果没有打开

转载 作者:行者123 更新时间:2023-12-04 21:15:07 25 4
gpt4 key购买 nike

我放在下面的代码无法正常工作。尝试运行宏时出现错误 400。你能稍微回顾一下这段代码吗?我不确定问题是否出在我所指的函数变量上。

Sub AutoFinal()    
Dim final_wb As Workbook, shop_stat_wb As Workbook
Dim book2 As String
book2 = "Workbook_I_need.xlsx"
Dim book2path As String
book2path = ThisWorkbook.Path & "\" & book2
Set final_wb = ThisWorkbook
If IsOpen(book2) = False Then Workbooks.Open (book2path)
Set shop_stat_wb = Workbooks(book2)
End Sub

Function IsOpen(strWkbNm As String) As Boolean
On Error Resume Next

Dim wBook As Workbook
Set wBook = Workbooks(strWkbNm)

If wBook Is Nothing Then 'Not open
IsOpen = False
Set wBook = Nothing
On Error GoTo 0
Else
IsOpen = True
Set wBook = Nothing
On Error GoTo 0
End If
End Function

最佳答案

IsOpen 可以简化为:

Function IsOpen(strWkbNm As String) As Boolean
Dim wb As Workbook
On Error Resume Next
Set wb = Workbooks(strWkbNm)
IsOpen = Err.Number = 0
On Error GoTo 0
End Function

我是这样写的:

Sub AutoFinal2()
Dim final_wb As Workbook, shop_stat_wb As Workbook
Dim WorkbookFullName As String

WorkbookFullName = ThisWorkbook.Path & "\" & book2
Set final_wb = ThisWorkbook
Set shop_stat_wb = getWorkbook(WorkbookFullName)

If shop_stat_wb Is Nothing Then
MsgBox "File not found:" & vbCrLf & WorkbookFullName, vbCritical, "AutoFinal2 Cancelled"
Exit Sub
End If
End Sub

Function getWorkbook(WorkbookFullName As String) As Workbook
Dim wb As Workbook
For Each wb In Workbooks
If wb.FullName = WorkbookFullName Then Exit For
Next

If wb Is Nothing Then
If Len(Dir(WorkbookFullName)) > 0 Then
Set wb = Workbooks.Open(WorkbookFullName)
End If
End If
Set getWorkbook = wb
End Function

关于vba - Excel VBA 检查工作簿是否打开,如果没有打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46708491/

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