如何在Excel 2007中从VBA访问复选框
添加复选框时,如何从VBA访问值如何在Excel 2007中从VBA访问复选框,excel,vba,excel-2007,Excel,Vba,Excel 2007,添加复选框时,如何从VBA访问值 在Excel 2007中,在开发人员功能区上 插入、窗体控件、复选框 将复选框重命名为chkMyCheck 将宏添加到复选框中,我现在已单击了带有chkMyCheck_的Module1 以下所有操作都失败 Sheets("Sheet1").chkMyCheck.Checked Sheets("Sheet1").chkMyCheck.Value Sheets("Sheet1").Shapes("chkMyCheck").Checked Sheets
- 在Excel 2007中,在开发人员功能区上
- 插入、窗体控件、复选框
- 将复选框重命名为chkMyCheck
- 将宏添加到复选框中,我现在已单击了带有chkMyCheck_的Module1
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”)似乎可以找到对象,但不显示任何可能返回选中状态的属性。找到了它
If Sheet1.Shapes("chkMyCheck").ControlFormat.Value = xlOn Then
.....
单向:
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
为完整起见,如果使用ActiveX复选框而不是常规复选框,则语法为
If Sheet1.Shapes("chkMyCheck").OLEFormat.Object.Object.Value Then
...
使用“局部变量”窗口和设置为形状的变量找到-
Dim shp as Shape
Set shp = Sheet1.Shapes("chkMyCheck")
Stop
也不起作用。Excel 2007中的工作表上没有复选框属性(至少不是我的副本)。对我来说测试良好:窗体控件复选框,Windows XP&7上的Excel 2007。的确,对象浏览器中没有“复选框”集合,但这并不会阻止它工作。如果在对象浏览器中单击鼠标右键并选择“显示隐藏成员”,则会看到复选框和复选框。它们已被弃用,但仍在那里。