2017-07-27 89 views
1

我有一個帶有三個選項按鈕的Microsoft Form 2.0框架控件。幀控制的名稱是Side,三個選項按鈕字幕分別爲XORandom,名稱分別爲xOption,oOptionrandomSide。 代碼運行良好,除了啓動時,如果我打開Excel並立即運行程序,它會給我一個Error 91,注意其中一個選項(XORandom)已被選中。爲了擺脫這個錯誤,我需要明確地選擇另一個選項,然後錯誤消失。我不知道爲什麼會發生這種情況。下面是Frame控制啓動時出現幀錯誤91錯誤

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

您需要檢查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 
+0

反正有申報特定的幀控制爲對象?例如將X變量聲明爲Side Frame Control obj? –

+0

'Dim myFrame As MSForms.Frame' – ThunderFrame