ActiveX 命令按钮标题在失去焦点时发生变化

问题描述 投票:0回答:1

由于无法可靠地调整复选框表单控件的大小,我使用一些代码来使用命令按钮模拟复选框。我使用

ChrW(&H2714)
生成复选标记作为按钮的标题文本。

该代码有效,但当我随后单击工作表的任何部分时,复选标记会变成问号(?)。我什至都不是一个合格的程序员,所以请让我知道我是否在自费做一些事情。

这是我的代码:

Private Sub CommandButton1_Click()

CommandButton1.Caption = IIf(CommandButton1.Caption = "", ChrW(&H2714), "") 
CommandButton1.BackColor = IIf(CommandButton1.BackColor = RGB(255, 255, 255), RGB(0, 255, 255), RGB(255, 255, 255))

If CommandButton1.Caption = ChrW(&H2714) Then

ActiveWorksheet.Range("L20") = Now() & " -" & Environ$("username")
ActiveWorksheet.Range("A20:N21").Interior.ColorIndex = 15

Else

ActiveWorksheet.Range("L20") = ""
ActiveWorksheet.Range("A20:N21").Interior.ColorIndex = 2

End If

End Sub
excel vba
1个回答
0
投票

您可以使用带有“检查”符号的字体。

这对我有用:

Private Sub CommandButton1_Click()
    Dim checked As Boolean
    With CommandButton1 'caption font set to WebDings
        checked = Not .Caption = "a"     'toggle checked state
        .Caption = IIf(checked, "a", "")
        .BackColor = IIf(checked, RGB(0, 255, 255), RGB(255, 255, 255))
        With Me
            .Range("L20") = IIf(checked, Now() & " -" & Environ$("username"), "")
            .Range("A20:N21").Interior.ColorIndex = IIf(checked, 15, 2)
        End With
    End With
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.