gpt4 book ai didi

excel - 如何检查选项按钮是否被选中

转载 作者:行者123 更新时间:2023-12-03 02:01:40 26 4
gpt4 key购买 nike

我希望能够在代码中检查是否选择了特定的选项按钮。

我在 Excel 工作表中制作了几个表单控制按钮,并尝试了如下操作:

if Activesheet.myButton = true then

(do stuff)

endif

但我收到“对象不支持此属性或方法”错误。

使用 ActiveX 选项按钮会更好吗?

最佳答案

默认情况下,VBA 隐藏了对使用工作表上的表单控件所需的类型的轻松访问。

在 VBA 编辑器中,按“F2”功能键或从“ View ”菜单 ->“对象浏览器”。这将打开对象浏览器窗口。如果在 Excel 库中搜索“OptionButton”,您将找不到任何可用于给定任务的内容。

Object Browser - Normal

但是,如果您右键单击“库窗口”并单击“显示隐藏成员”,您将获得可以使用的完整类(class)列表。一旦您启用了“隐藏成员”,VBA 的 Intellisense 也会向您显示这些类。

Object Browser with hidden Members Shown

表单控件作为形状添加到工作表中,但形状对象本身没有任何允许您查看选项按钮是否被选中的属性。您可以通过“OLEFormat.Object”属性访问OptionButton,但此时它只是一个“Object”类型。但是,您可以将该对象转换为 Excel.OptionButton,如以下代码所示。您会注意到,我在“OptionButton”前面加上了“Excel”命名空间(库)名称。通过这样做,只要您键入“.”,智能感知就会启动。并为您提供可供选择的类(class)列表。 OptionButton 类公开一个“Value”属性,允许您检查它是否已选中(Value = 1)或未选中(Value = 0)。

Dim ws As Excel.Worksheet
Set ws = ActiveWorkbook.Worksheets.Item("Sheet2")

Dim btn As Shape
Set btn = ws.Shapes.Item("Option Button 1")
Dim optBtn1 As Excel.OptionButton
Set optBtn1 = Sheet2.Shapes.Item("Option Button 1").OLEFormat.Object

If optBtn1.Value = 1 Then ' it is checked
Debug.Print "Option Button 1 is checked"
End If

现在这一切都完成了,但是现在您可以访问隐藏成员,您还可以访问 WorkSheet 对象上存在的 OptionButtons 集合,并且可以跳过将其作为形状对象进行访问的过程。

Dim ws As Excel.Worksheet
Set ws = ActiveWorkbook.Worksheets.Item("Sheet2")

Dim optBtn2 As Excel.OptionButton
Set optBtn2 = ws.OptionButtons.Item("Option Button 2")
If optBtn2.Value = 1 Then ' it is checked
Debug.Print "Option Button 2 is checked"
End If

关于excel - 如何检查选项按钮是否被选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30904178/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com