【问题标题】:Remove shadow from ActiveX Option Button in Excel 2010 VBA从 Excel 2010 VBA 中的 ActiveX 选项按钮中删除阴影
【发布时间】:2015-10-21 22:30:53
【问题描述】:

当用户选择它时,我试图强调来自 activeX 控件的选项按钮。我决定在选择时显示阴影,然后在用户选择其他选项按钮时隐藏阴影。第一个过程正在工作,而即使我选择其他按钮也无法删除阴影。我的 VBA 代码如下所示:

Private Sub OptionButton1_Click()

OptionButton1.Shadow = False

If OptionButton1.Value = True Then
OptionButton1.Shadow = True

Else
OptionButton1.Shadow = False

End If

End Sub

谁能帮我解决这个问题?

【问题讨论】:

  • 你在另一个按钮中有代码来移除 OptionButton1 的阴影吗?

标签: vba excel excel-2010


【解决方案1】:

如果是表格按钮,您可以使用

Sub RemoveFormsButtonShadows()
     'A.Leine 21/10/2015
     For Each Button In ActiveSheet.Shapes
         Button.Select
         Selection.ShapeRange.Shadow.Visible = False
     Next Button
End Sub

【讨论】:

    【解决方案2】:

    为此,您必须创建一个需要从您拥有的所有选项按钮中调用的子程序。这个普通的 sub 将简单地从所有选项按钮中删除阴影。这里我以 3 个选项按钮为例。

    Option Explicit
    
    Private Sub OptionButton1_Click()
        RemoveShadow
    
        If OptionButton1.Value = True Then _
        OptionButton1.Shadow = True
    End Sub
    
    Private Sub OptionButton2_Click()
        RemoveShadow
    
        If OptionButton2.Value = True Then _
        OptionButton2.Shadow = True
    End Sub
    
    Private Sub OptionButton3_Click()
        RemoveShadow
    
        If OptionButton3.Value = True Then _
        OptionButton3.Shadow = True
    End Sub
    
    Sub RemoveShadow()
        Dim objOpt As OLEObject
    
        With ActiveSheet
            For Each objOpt In .OLEObjects
                If TypeName(objOpt.Object) = "OptionButton" Then
                    objOpt.Shadow = False
                End If
            Next
        End With
    End Sub
    

    【讨论】:

    • 很高兴能帮上忙 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 2015-04-29
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    相关资源
    最近更新 更多