代码之家  ›  专栏  ›  技术社区  ›  Kiye A

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

  •  1
  • Kiye A  · 技术社区  · 7 月前

    由于无法可靠地调整复选框表单控件的大小,我使用一些代码来使用命令按钮模拟复选框。我在用 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
    
    1 回复  |  直到 7 月前
        1
  •  0
  •   Tim Williams    7 月前

    您可以使用带有“复选”符号的字体。

    这对我来说很有效:

    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