在复制/过滤单元格内容时,需要帮助循环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 

检测结果:

在这里输入图像说明


在这里输入图像说明