此代码如果检查复选框,则旨在将单词" 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/