在vba中调用GUI后无法关闭/编辑excel工作表
我的GUI中有一个按钮,它调用以下过程:在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.
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
移动到子脚本的最后一行。