使用VBA复选框显示其他值



此代码如果检查复选框,则旨在将单词" new"放置,以及如果未选中,则将其放置。

If CheckBox2.Value = False Then
Cells(3, 3) = ChrW(&H2713)  # <-- checkmark ✓
Else: Cells(3, 3) = "New"
End If

但是,目前,如果选择了复选框,则仅将单词" new"放置,但是如果未选择该复选框,则不会放置✓Checkmark!当他们选择复选框时,我可以将其显示出一个复选框,然后取消选择复选框,但这很麻烦。

我该如何修复?

这可能是最简单的&amp;最脏的解决方案:

Private Sub CheckBox1_Click()        
    If CheckBox1.Value Then
        Cells(3, 3) = "New"
    Else
        Cells(3, 3) = ChrW(&H2713)
    End If        
End Sub

每次选择复选框时,C3单元格都会使用 new 更新。有一种更好的方法,但是它需要面向对象的编程 - vba是一种OOP语言,它是否支持多态性?

"更好的方式"的引用:

  • https://rubberduckvba.wordpress.com/tag/userforms/

最新更新