Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 复制/通过单元格内容时,需要通过选项按钮组循环的帮助吗_Loops_Excel_Radio Button_Vba - Fatal编程技术网

Loops 复制/通过单元格内容时,需要通过选项按钮组循环的帮助吗

Loops 复制/通过单元格内容时,需要通过选项按钮组循环的帮助吗,loops,excel,radio-button,vba,Loops,Excel,Radio Button,Vba,我有一个带有选项按钮和2个控制按钮的Excel“Sheet1”(确定,清除) 本页的目的是学习一些控件编码 D6:D14(要复制的内容) P6:P14(如果选项按钮1为真,则粘贴在此处) 问题6:Q14(如果选项按钮2为真,则粘贴在此处) 对于其余的行,同样的操作需要重复或循环 这是第6行的代码,选项按钮配对为选项按钮1和2、3和4、5和6等 Private Sub CommandButton1_Click() If Sheet1.OptionButton1.Value = True Then

我有一个带有选项按钮和2个控制按钮的Excel“Sheet1”(确定,清除)

本页的目的是学习一些控件编码

D6:D14(要复制的内容)

P6:P14(如果选项按钮1为真,则粘贴在此处)

问题6:Q14(如果选项按钮2为真,则粘贴在此处)

对于其余的行,同样的操作需要重复或循环

这是第6行的代码,选项按钮配对为选项按钮1和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

这种方法不是很灵活,但使代码更容易一些

用下划线和数字命名每个选项按钮,如下所示:
optionButton\u 1

以相同的方式命名每个选项按钮组,但编号为单元格所在的行。例如,与单元格
D6
相关的选项按钮可以是group
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

测试结果:



我这里的代码适用于第6行value、optionbutton1、optionbutton2;如果选项按钮1的值为真,则将值从D6复制到P6;如果没有,将内容从D6复制到Q6。除使用optionbutton3和optionbutton4外,第7行的设置将相同。代码中唯一需要修改的是选项按钮和从“6”到“7”等等。对于我的回复太晚,我深表歉意。这正是我要找的!非常感谢。