Vba 当其他宏运行并关闭用户窗体时,宏第二次给出错误91

Vba 当其他宏运行并关闭用户窗体时,宏第二次给出错误91,vba,excel,object,Vba,Excel,Object,我有两个宏。一个宏用于通过最小化功能区和放大功能,为不同的监视器重新调整excel工作表的大小。另一个宏,我可以使用用户输入的文本在特定excel工作表中写入一些问题。此宏激活用户可以在其中输入数据的userform。 第一个宏按预期在所有excel工作表中完美运行。如果我运行第二个宏一次,并尝试再次运行第一个宏。它总是在行“MaxCol=Rows(1)…”中的第一个宏上给对象变量not set error。我必须关闭并重新打开它才能再次运行第一个宏 我不知道为什么会出现这种情况。如果用户按ok

我有两个宏。一个宏用于通过最小化功能区和放大功能,为不同的监视器重新调整excel工作表的大小。另一个宏,我可以使用用户输入的文本在特定excel工作表中写入一些问题。此宏激活用户可以在其中输入数据的userform。 第一个宏按预期在所有excel工作表中完美运行。如果我运行第二个宏一次,并尝试再次运行第一个宏。它总是在行“MaxCol=Rows(1)…”中的第一个宏上给对象变量not set error。我必须关闭并重新打开它才能再次运行第一个宏

我不知道为什么会出现这种情况。如果用户按ok或cancel,我已经正确地关闭(卸载)了Userform的对象

下面是第一个宏的代码

Sub OptimalSize()

Dim SheetName As String
Dim MaxCol As Long

SheetName = ""
MaxCol = 0

CommandBars.ExecuteMso "MinimizeRibbon"

Application.WindowState = xlMaximized

SheetName = ActiveSheet.Name

MaxCol = Rows(1).Find(1, SearchOrder:=xlByColumns,    SearchDirection:=xlNext, MatchCase:=False).Column

Sheets(SheetName).Select
ActiveSheet.Range("A1", Cells(1, MaxCol)).Select
ActiveWindow.Zoom = True
Application.Goto Reference:=Worksheets(SheetName).Range("A1"), Scroll:=True  
End Sub
在一些计算之后调用userform的第二个宏

Sub ProblemBoard()

' code here to find out empty space in a table!!'

 Userform1.Show 
End sub
下面是用户表单代码

Sub CommandButton1_Click()

Application.ScreenUpdating = False

Worksheets("Problem Board").Cells(z, 2).Value = TextBox1.Text
Worksheets("Problem Board").Cells(z, 5).Value = TextBox2.Text

Unload Me
Sheets(ActWS).Select
Application.ScreenUpdating = True

End Sub

Private Sub CommandButton2_Click()

  Unload Me
  Sheets(ActWS).Select
  Application.ScreenUpdating = True
End Sub

Private Sub UserForm_Initialize()


Dim lng As Long

'ActWS = ActiveSheet.Name

lng  = Sheets("Listen").Range("A65536").End(xlUp).Row
Me.ComboBox2.List = Sheets("Listen").Range("A2:A" & lng ).Value
TextBox1 = ""
TextBox2 = ""

End Sub