启动时帧控制出错91

时间:2017-07-27 20:47:38

标签: excel vba activex

我有一个带有三个选项按钮的Microsoft Form 2.0 Frame Control。框架控件的名称为Side,三个选项按钮标题为XORandom,名称为xOptionoOption,和randomSide分别。 代码运行正常,除非在启动时,如果我打开Excel并立即运行程序,它会给我Error 91,请注意其中一个选项(XORandom)已被选中。为了摆脱这个错误,我需要明确选择另一个选项,然后错误就消失了。我不知道为什么会这样。这是Frame控件

的子
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作为一个框架控件,以防有一些有用的信息,因为我认为该对象已经通过制作框架控件来声明。提前谢谢!

1 个答案:

答案 0 :(得分:1)

你需要检查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