添加复选框时,如何从VBA访问该值?
以下所有内容都失败
Sheets("Sheet1").chkMyCheck.Checked
Sheets("Sheet1").chkMyCheck.Value
Sheets("Sheet1").Shapes("chkMyCheck").Checked
Sheets("Sheet1").Shapes("chkMyCheck").Value
Sheet1.chkMyCheck.Checked
Sheet1.chkMyCheck.Value
Sheet1.Shapes(“chkMyCheck”)似乎找到了对象,但没有公开任何看起来可能返回已检查状态的属性。
答案 0 :(得分:9)
想出来
If Sheet1.Shapes("chkMyCheck").ControlFormat.Value = xlOn Then
.....
答案 1 :(得分:4)
一种方式:
Dim oCheck As Object
Set oCheck = Sheet1.CheckBoxes("chkMyCheck")
MsgBox (oCheck.Value = xlOn)
编辑:这是另一种方法 - 也许这个方法对你有用......
Sub Tester2()
Dim sh As Shape
For Each sh In Sheet1.Shapes
If sh.Type = msoFormControl Then
If sh.FormControlType = xlCheckBox Then
Debug.Print sh.Name & "=" & sh.ControlFormat.Value
End If
End If
Next sh
End Sub
答案 2 :(得分:0)
为了完整起见,如果您使用ActiveX复选框而不是常规复选框,则语法为
If Sheet1.Shapes("chkMyCheck").OLEFormat.Object.Object.Value Then
...
找到使用Locals窗口和设置为形状的变量 -
Dim shp as Shape
Set shp = Sheet1.Shapes("chkMyCheck")
Stop