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