0

メインの Excel ページには、Yes/No オプションに使用したい OptionButton1 と OptionButton2 という 2 つの ActiveX コントロール ラジオ ボタンがあります。

私のコードには次のものがあります。

If OptionButton1.Value = True Then
    MsgBox "Yes."
ElseIf OptionButton2.Value = True Then
    MsgBox "No."
End If

マクロを実行しようとすると、次のエラーが発生します。

Runtime error '424':
Object Required

これを修正するにはどうすればよいですか?

4

2 に答える 2

3

おそらく、オプション ボタンがどこにあるか、つまりどのシートにあるかを参照する必要があります。

If Sheet1.OptionButton1.Value  Then ...

これは、コードがそのシートにないためです (私は推測します)。そのため、参照されていないオブジェクトは現在のシートにあると見なされ、正しいシートではない可能性があります。

于 2013-01-24T13:35:01.937 に答える
0

代わりにフォーム コントロールのオプション ボタンを使用すると、コードは次のようになります。

Dim Shp1 As Shape
Dim Shp2 As Shape

Dim Res As Integer   'Retuns the result
On Error Resume Next
Set Shp1 = Worksheets("sheet1").Shapes("Option Button 1")
Set Shp2 = Worksheets("sheet1").Shapes("Option Button 2")
   If Shp1 Is Nothing Then
    If Shp2 Is Nothing Then
        'MsgBox "none" 'in case they were deleted off the sheet
        Res = -3 '2 options deleted
    ElseIf Shp2.ControlFormat.Value = xlOn Then
        'MsgBox "second"
        Res = 2
    Else
        'MsgBox "Only Button 2 exists and it is off"
        Res = -1 'Option Button1 deleted
    End If
Else
    If Shp1.ControlFormat.Value = xlOn Then
        'MsgBox "first"
        Res = 1
    Else
        If Shp2 Is Nothing Then
            'MsgBox "Only Button 1 exists and it is off"
            Res = -2 'Option Button2 deleted
        ElseIf Shp2.ControlFormat.Value = xlOn Then
            'MsgBox "sec"
            Res = 2
        Else
            'MsgBox "Both exists, both are off"
            Res = 0
        End If
    End If
End If
return Res
于 2013-04-15T14:13:10.433 に答える