Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Excel 2007中从VBA访问复选框_Excel_Vba_Excel 2007 - Fatal编程技术网

如何在Excel 2007中从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

添加复选框时,如何从VBA访问值

  • 在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。的确,对象浏览器中没有“复选框”集合,但这并不会阻止它工作。如果在对象浏览器中单击鼠标右键并选择“显示隐藏成员”,则会看到复选框和复选框。它们已被弃用,但仍在那里。