Vba 隐藏行会打断activeX选项按钮。位于这些行上

Vba 隐藏行会打断activeX选项按钮。位于这些行上,vba,excel,activexobject,Vba,Excel,Activexobject,我浏览了互联网,似乎找不到其他人有同样的问题 我有一个包含多个分组ActiveX选项框的电子表格。用户将进入电子表格并从框中选择选项,通常为“是”或“否”。代码只是隐藏了用户不必根据之前的选择回答的行。 示例代码: Private Sub OptionButton3_Click() 'High School Diploma YES Option Application.ScreenUpdating = False Sheets("Sheet1").Rows("18:38

我浏览了互联网,似乎找不到其他人有同样的问题

我有一个包含多个分组ActiveX选项框的电子表格。用户将进入电子表格并从框中选择选项,通常为“是”或“否”。代码只是隐藏了用户不必根据之前的选择回答的行。 示例代码:

 Private Sub OptionButton3_Click()
 'High School Diploma YES Option

     Application.ScreenUpdating = False
     Sheets("Sheet1").Rows("18:38").Hidden = True
     Application.ScreenUpdating = True

 End Sub

 Private Sub OptionButton4_Click()
 'High School Diploma NO Option

     Application.ScreenUpdating = False
     Sheets("Sheet1").Rows("18:38").Hidden = False
     Application.ScreenUpdating = True
 End Sub
我的问题是,每当我取消隐藏这些行中的一行时,例如,用户将“是”更改为“否”。以前隐藏的activeX选项框现在不可访问,并且随后不可使用。有人知道是什么原因造成的,以及如何修复吗

在隐藏行之前,我甚至尝试独立地隐藏控制框,但我得到了相同的结果

(ActiveSheet.Shapes.Range(Array("Group 1", "Group 2", "Group 3")).Visible = False)
对控件来说非常陌生,所以不确定我是否犯了一个明显的错误。非常感谢您的帮助。

我尝试了以下方法:

我有两个选项按钮在第1页的第1行。下面的代码来自sheet1的模块

我使用HideOrShowRow过程来隐藏或显示该行

两个选项按钮的右键单击>格式控制>属性>对象定位属性设置为随单元格移动和调整大小。 这就是允许控件与行一起隐藏的原因-因此我认为您一定已经这样做了

不管怎样,它对我来说还行。然而,我怀疑你对每个问题都有两个选项按钮。是和否。这两个值需要相互切换,正如我下面的代码所做的那样

请注意,一旦选项按钮中有一个勾号,您就不能单击它来取消勾号。另一个选项按钮必须这样做!ie作为我下面的代码

代码中没有这一点可能与您的问题有关

此外,每个ADo控件都有一个enabled属性。如果设置为false,用户将无法更改其值或选择控件。听起来他们可能是假的?但是怎么做

Private Sub Q1_no_Click()

    MsgBox "hi"
    Me.Q1_No.Value = Not Me.Q1_yes.Value

End Sub


Private Sub Q1_yes_Click()

    Me.Q1_yes.Value = Not Me.Q1_No.Value

End Sub


Sub HideOrShowRow()

    Me.Range("A1").EntireRow.Hidden = Not Me.Range("A1").EntireRow.Hidden

End Sub

所以,我已经玩了几天,这是我学到的:

如果activeX按钮optionbutton、复选框等设置为随单元格移动和调整大小,则每当它所在的单元格被隐藏时,它就会被破坏。该按钮无法再单击或右键单击,并且无法以任何方式修复

我尝试了多种隐藏行的方法,使用VBA命令EntireRow.Hidden=True和使用VBA命令使用VBA RowHeigt=0物理选择行并隐藏。在所有情况下,一旦取消隐藏行且按钮再次可见,则不再可单击该行

我发现的一个解决方法是更改activeX按钮的设置,使其不随单元格移动或调整大小。然后,在使用VBA代码隐藏行时,我添加了其他代码来隐藏按钮

ActiveSheet.OLEObjects("OptionButton1").Visible = False

这并不理想,但它似乎至少给出了隐藏在其余行内容中的按钮的外观。

感谢您的快速响应!我使用的activeX OptionBox是使用“开发人员”选项卡中的“插入”功能添加的。我在表单按钮上使用了actionX按钮。插入后,我右键单击这两个框,并使用组选项使它们在另一个框激活时自动切换。因此,如果我选择Yes(是),则不选择no(否),而不需要额外的代码。在我隐藏带有选项框的行之前,此功能可以完美工作。一旦取消隐藏,我将无法再选择任何一个选项框。这有意义吗?还有其他人有过这个问题的经验吗?我仍然不知道如何让activeX按钮在隐藏后工作。您描述的行为在Excel 2013中不会发生。请注意,在VBA窗口中,每个选项activex optin button对象都有一个GroupName属性。正是这一点应用于对对象进行分组,以便它们可以相互切换。您是在使用此功能,还是选择了Buton并通过选择“右键单击组”将其添加到形状组中?