在vba中调用GUI后无法关闭/编辑excel工作表

在vba中调用GUI后无法关闭/编辑excel工作表,vba,excel,Vba,Excel,我的GUI中有一个按钮,它调用以下过程: Private Sub CommandButtonPersonalFilter_Click() Unload GUI Dim myPath As String Dim Wb As Workbook myPath = Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\") - 1) If Dir(myPath & "\filterPartsList.

我的GUI中有一个按钮,它调用以下过程:

Private Sub CommandButtonPersonalFilter_Click()
    Unload GUI
    Dim myPath As String

    Dim Wb As Workbook
    myPath = Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\") - 1)
    If Dir(myPath & "\filterPartsList.xlsx") = "" Then
        FileCopy "Z:\Dokumentstyring\Templates\filterPartsList.xlsx", myPath & "\filterPartsList.xlsx"
    End If
    Set Wb = HelpFunctions.GetWorkbook(myPath & "\filterPartsList.xlsx")
    Wb.Activate
    Wb.Sheets(1).Range("A1").Select
    Set Wb = Nothing

End Sub
当我点击按钮(从a.xlsx)时,它会打开一个新的工作簿(b.xlsx,一切都应该如此),但是如果我随后决定b.xlsx很好,并且我想关闭b.xlsx(或编辑),那么我只允许这样做如果我首先跳回a.xlsx,点击那里的任何单元格,然后跳回b.xlsx

以下是帮助器函数:

Public Function GetWorkbook(ByVal sFullName As String) As Workbook

    Dim sFile As String
    Dim wbReturn As Workbook

    sFile = Dir(sFullName)

    On Error Resume Next
        Set wbReturn = Workbooks(sFile)

        If wbReturn Is Nothing Then
            Set wbReturn = Workbooks.Open(sFullName)
        End If
    On Error GoTo 0

    Set GetWorkbook = wbReturn

End Function

这不是一个大问题,但如果能找出问题所在,那就太好了。所有宏都以编程方式存储在personal.xlsb中,
Dim Wb As Workbook
将此变量声明为过程的本地变量,因此您以后不能真正调用它,您可以使用公共变量将引用保留在手边,以后再使用它。对于手动操作,这有点奇怪…我在代码中没有看到wb.close。我不想在vba中关闭它,只想在B.xlsx一切正常的情况下手动关闭。personal.xlsb可能有问题,看起来很不稳定,有时加载正确,有时不正确。尝试将
卸载GUI
移动到子脚本的最后一行。