情況 我有兩個表單控制元件復選框。我正在嘗試撰寫一個僅允許其中任何一個為真的代碼。

我的代碼是
Sub CheckBox2_Click()
If CheckBox1.Enabled = True Then
CheckBox2.Enabled = False
Else
If CheckBox2.Enabled = True Then
CheckBox1.Enabled = False
End If
End If
End Sub
我在模塊中有此代碼,并為兩個復選框分配了相同的宏。我得到運行時錯誤 424。我相信這是一個非常基本的問題,但我無法解決它。謝謝
uj5u.com熱心網友回復:
請通過以下方式進行測驗。表單復選框沒有 click event,就像 ActiveX 的那樣。您應該將下一個 sub與它們相關聯。我測驗的復選框的名稱分別為“復選框 1”和“復選框 2”。您必須根據實際情況進行更改,請復制標準模塊中的下一個代碼,然后將其關聯到兩個使用的復選框:
Option Explicit
Sub FormCheckBoxChange()
If ActiveSheet.CheckBoxes(Application.Caller).value = 1 Then
Select Case Application.Caller
Case "Check Box 1": ActiveSheet.CheckBoxes("Check Box 2").value = -4146
Case "Check Box 2": ActiveSheet.CheckBoxes("Check Box 1").value = -4146
End Select
End If
End Sub
使用適合您情況的復選框名稱,而不是使用的復選框名稱。
在表單文本框的情況下,它們的值不是True和False在 ActiveX 的情況下一樣。它是1和-4146...
uj5u.com熱心網友回復:
您確定要啟用/禁用復選框。
以下代碼確保選中兩個框之一。
Public Sub checkbox2_onClick()
Dim oCb1 As Object
Set oCb1 = Table1.Shapes("Checkbox1").OLEFormat.Object
Dim oCb2 As Object
Set oCb2 = Table1.Shapes("Checkbox2").OLEFormat.Object
If oCb2.Value = 1 Then oCb1.Value = 0
End Sub
Public Sub checkbox1_onClick()
Dim oCb1 As Object
Set oCb1 = Table1.Shapes("Checkbox1").OLEFormat.Object
Dim oCb2 As Object
Set oCb2 = Table1.Shapes("Checkbox2").OLEFormat.Object
If oCb1.Value = 1 Then oCb2.Value = 0
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/443982.html
