我有一个Excel“Sheet1”,带有选项按钮和2个控制按钮(OK,Clear)
本工作表的目的是学习一些带控件的编码。
D6:D14(要复制的内容)
P6:P14(如果选项button1为真,则粘贴此处)
Q6:Q14(如果选项button2为真,则粘贴此处)
同样需要为其余行重复或循环。
这是第6行的代码,选项按钮配对为optionbutton1& 2,3& 4,5& 6等......
Private Sub CommandButton1_Click()
If Sheet1.OptionButton1.Value = True Then
Range("P6").Select
ActiveCell.FormulaR1C1 = "=RC[-12]"
Range("P6").Select
Range("Q6").Clear
Else
Range("Q6").Select
ActiveCell.FormulaR1C1 = "=RC[-13]"
Range("Q6").Select
Range("P6").Clear
End If
答案 0 :(得分:0)
这种方法不够灵活,但使代码更容易。
使用下划线和数字命名每个选项按钮,如下所示:optionButton_1
以相同的方式为每个选项按钮组命名,但数字是单元格所在的行。例如,与单元格D6
相关的选项按钮可以是组btnGroup_6
现在,您可以遍历每个选项按钮并使用按钮和组名称轻松确定目标,如下所示:
Private Sub btn_OK_Click()
Dim oOption As OLEObject
For Each oOption In Sheet1.OLEObjects
If oOption.OLEType = 2 Then
If oOption.Object = True Then
GroupNumber = Split(oOption.Object.GroupName, "_")(1)
ButtonNumber = Split(oOption.Name, "_")(1)
'Test is button is odd or even to determine destination
If ButtonNumber Mod 2 Then
Range("D" & GroupNumber).Copy Destination:=Range("P" & GroupNumber)
Else
Range("D" & GroupNumber).Copy Destination:=Range("Q" & GroupNumber)
End If
End If
End If
Next oOption
End Sub
测试结果: