在复制/过滤单元格内容时,需要帮助循环selectbutton组
我有一个带有选项button和2个控制button(OK,Clear)的Excel“Sheet1”
本表的目的是学习一些编码与控制。
D6:D14(要复制的内容)
P6:P14(如果选项button1为true,则粘贴在这里)
Q6:Q14(如果选项button2为true,则粘贴到此处)
剩下的行也需要重复或循环。
这是第6行的代码,选项button作为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
这种方法不是很灵活,但使代码更容易一些。
用下划线和数字命名每个选项button: optionButton_1
以相同的方式命名每个选项button组,但数字是单元格所在的行。 例如,与单元格D6
相关的选项button可以是组btnGroup_6
现在你可以遍历每个选项button,并使用button和组名来轻松确定目标,如下所示:
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
检测结果: