我有两组单选按钮.见下图.
其中一组用于交易类型,另一组用于交易编号。
一天总共允许6笔交易。其中3笔用于取款,其他3笔用于存款。
我正在使用下面的vba代码来自动选择下一个单选按钮,如果一个是使用。但没有运气。
Sub OBWithdrawal_Click()
Dim OBWithdrawal, OBDeposit, OB1st, OB2nd, OB3rd As OptionButton
'transaction type
Set OBWithdrawal = Sheet1.Shapes("OBWithdrawal").OLEFormat.Object
Set OBDeposit = Sheet1.Shapes("OBDeposit").OLEFormat.Object
'transaction number
Set OB1st = Sheet1.Shapes("OB1st").OLEFormat.Object
Set OB2nd = Sheet1.Shapes("OB2nd").OLEFormat.Object
Set OB3rd = Sheet1.Shapes("OB3rd").OLEFormat.Object
If Sheet1.Range("G24").Value = "#NUM" Then
OB1st.Value = True
If Sheet1.Range("G24").Value = 1 Then
OB2nd.Value = True
If Sheet1.Range("G24").Value = 2 Then
OB3rd.Value = True
If Sheet1.Range("G24").Value = 3 Then
OB1st.Value = False
OB2nd.Value = False
OB3rd.Value = False
MsgBox "You have only 3 withdrawal are allowed in a single day." & vbNewLine & ""
End If
End If
End If
End If
End Sub
我没有收到任何错误信息。所以我不知道我做错了什么。
请帮帮忙
1条答案
按热度按时间p4rjhz4m1#
**1.**始终单独声明变量。如果您将它们声明为
Dim OBWithdrawal, OBDeposit, OB1st, OB2nd, OB3rd As OptionButton
,则只有最后一个OB3rd
将被声明为OptionButton
。其余变量将被声明为Variant
**2.**您可以使用单个
IF-ELSEIF-ENDIF
语句来处理所有这些条件。**3.**此过程适用于
Withdrawal
。类似地,为Deposit
创建。或者,您可以为两者创建一个公共过程,然后使用Application.Caller
确定哪个是“调用”选项按钮,然后执行相关代码。这就是你想要的吗?
编辑
这是我提到的第三种方法。将此代码分配给
Withdrawal
和Deposit
按钮。这对两者都有效。