如何从Excel 2007中的VBA访问checkbox
在添加checkbox时,如何访问VBA中的值?
- 在Excel 2007中,在开发人员function区上
- 插入,表单控件,checkbox
- 将checkbox重命名为chkMyCheck
- 添加macros到checkbox,我现在有模块1与chkMyCheck_Clicked
以下所有失败
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
为了完整起见,如果您使用ActiveXcheckbox而不是常规checkbox,则语法为
If Sheet1.Shapes("chkMyCheck").OLEFormat.Object.Object.Value Then ...
find使用本地窗口和variables设置为形状 –
Dim shp as Shape Set shp = Sheet1.Shapes("chkMyCheck") Stop