Excel 启动时帧控制出现错误91
我有一个带有三个选项按钮的Microsoft Form 2.0框架控件。帧控件的名称为Excel 启动时帧控制出现错误91,excel,vba,activex,Excel,Vba,Activex,我有一个带有三个选项按钮的Microsoft Form 2.0框架控件。帧控件的名称为Side,三个选项按钮标题分别为X、O、和Random,它们的名称分别为xOption、oOption、和randomSide。 代码运行正常,除非在启动时,如果我打开Excel并立即运行程序,它将给我一个错误91,请注意,其中一个选项(X,O,或Random)已经选中。为了消除这个错误,我需要显式地选择另一个选项,然后错误消失。我不知道为什么会这样。下面是帧控件的子控件 Public Sub Side_Cli
Side
,三个选项按钮标题分别为X
、O
、和Random
,它们的名称分别为xOption
、oOption
、和randomSide
。
代码运行正常,除非在启动时,如果我打开Excel并立即运行程序,它将给我一个错误91
,请注意,其中一个选项(X
,O
,或Random
)已经选中。为了消除这个错误,我需要显式地选择另一个选项,然后错误消失。我不知道为什么会这样。下面是帧
控件的子控件
Public Sub Side_Click()
sideLetter = Side.ActiveControl.Caption
If StrComp(sideLetter, "Random") = 0 Then
Randomize
tempRand = Int((Rnd() * 2 + 1))
If tempRand = 1 Then
sideLetter = "X"
Else
sideLetter = "O"
End If
End If
End Sub
导致问题的行是
sideLetter=Side.ActiveControl.Caption
。我没有明确声明Side
作为帧控件,以防这是一些有用的信息,因为我认为仅仅通过创建帧控件就已经声明了对象。提前谢谢 在阅读标题之前,您需要检查Side.ActiveControl
是否实际上是一个对象:
Public Sub Side_Click()
If Not Side.ActiveControl Is Nothing Then
sideLetter = Side.ActiveControl.Caption
If StrComp(sideLetter, "Random") = 0 Then
Randomize
tempRand = Int((Rnd() * 2 + 1))
If tempRand = 1 Then
sideLetter = "X"
Else
sideLetter = "O"
End If
End If
End If
End Sub
是否仍要将特定帧控件声明为对象?例如,将X变量声明为侧框控件obj?
Dim myFrame作为MSForms.Frame