gpt4 book ai didi

VBA Excel切换按钮 "Latching"

转载 作者:行者123 更新时间:2023-12-04 21:10:08 30 4
gpt4 key购买 nike

我有以下代码对应于 Excel 中的 VBA 程序中的三个 ToggleButtons。单击一个按钮时,应该保持“按下”状态,而其他两个按钮应该“释放”。但是,使用我拥有的代码,我必须单击一个按钮两次,一次以释放其他按钮,另一个以保持按下原始按钮。

但是,如果我向每个 Subs 添加“ToggleButtonX.Value = True”,当单击一个按钮时,即使单击另一个按钮也无法释放。如何配置它,以便当单击一个按钮时,该按钮保持按下状态并释放其他按钮?

编辑:我想保持切换按钮。

Private Sub ToggleButton1_Click()
ToggleButton2.Value = False
ToggleButton3.Value = False
End Sub

Private Sub ToggleButton2_Click()
ToggleButton1.Value = False
ToggleButton3.Value = False
End Sub

Private Sub ToggleButton3_Click()
ToggleButton1.Value = False
ToggleButton2.Value = False
End Sub

最佳答案

除了OptionButton answer ,这可能更容易和更清晰地实现,还有另一种方法可以通过使用仅在单击一个按钮时更改其他两个按钮的值的逻辑来实现。其他按钮的代码 Click事件将触发,但变量 sButton将确定代码只会在用户物理按下的按钮上触发。
还要注意 Not Me.ToggleButton1.Value 的使用。 .这将确保按钮 2 和 3 在每次单击时都与按钮 1 相对。您的代码的编写方式总是会将其他按钮还原为 False不管点击的按钮是TrueFalse .

Option Explicit

Public sButton As String

Private Sub ToggleButton1_Click()

ButtonLoad 1

End Sub

Private Sub ToggleButton2_Click()

ButtonLoad 2

End Sub

Private Sub ToggleButton3_Click()

ButtonLoad 3

End Sub

Sub ButtonLoad(iButton As Integer)

Select Case iButton
Case 1
If sButton = "" Then
sButton = "1" 'set so that other buttons don't trigger
Me.ToggleButton2.Value = Not Me.ToggleButton1.Value
Me.ToggleButton3.Value = Not Me.ToggleButton1.Value
sButton = "" 'reset for next button click
End If
Case 2
If sButton = "" Then
sButton = "2"
Me.ToggleButton1.Value = Not Me.ToggleButton2.Value
Me.ToggleButton3.Value = Not Me.ToggleButton2.Value
sButton = ""
End If
Case 3
If sButton = "" Then
sButton = "3"
Me.ToggleButton2.Value = Not Me.ToggleButton3.Value
Me.ToggleButton1.Value = Not Me.ToggleButton3.Value
sButton = ""
End If
End Select

End Sub

关于VBA Excel切换按钮 "Latching",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38569814/

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