Excel 我想知道Sheet1和设置工作表之间的区别
我在模块1中有一段脚本,用于检查是否单击了选项按钮 选项按钮放在Sheet1中,名为“Info”,所以我认为下面的脚本可以工作Excel 我想知道Sheet1和设置工作表之间的区别,excel,vba,Excel,Vba,我在模块1中有一段脚本,用于检查是否单击了选项按钮 选项按钮放在Sheet1中,名为“Info”,所以我认为下面的脚本可以工作 Sub checkClicked() dim Page as worksheet set Page as worksheets(“Info”) Debug.print Page.optClicked End sub 但当我这样做时,它会说找不到方法或数据成员。如果我把它换成新的,它才会起作用 … Debug.print Sheet1.opt
Sub checkClicked()
dim Page as worksheet
set Page as worksheets(“Info”)
Debug.print Page.optClicked
End sub
但当我这样做时,它会说找不到方法或数据成员。如果我把它换成新的,它才会起作用
…
Debug.print Sheet1.optClicked
…
有人能告诉我为什么会发生这种情况吗?工作表中的参数是您感兴趣的工作表的名称,即“Sheet1”。工作表中的参数是您感兴趣的工作表的名称,即“Sheet1” 另外,您的调试打印代码看起来很奇怪,请使用debug.print(“bla”)。。 你有激活的选项吗 另外,您的调试打印代码看起来很奇怪,请使用debug.print(“bla”)。。
您是否激活了Option explicit?尝试
设置页面=工作表(“信息”)
并且不要使用这些卷曲的“
引号-以防万一(对于Excel公式,这很重要)。尝试设置页面=工作表(“信息”)
并且不要使用这些卷曲的引号-以防万一(对于Excel公式来说,这很重要)。将Sheet1视为“工作表”的“子类”-在向工作表添加控件时,您正在添加新成员。通用工作表对象没有表示选项按钮的成员,而Sheet1有
Sub Test()
Dim sht As Worksheet
Dim sht1 As Sheet1
Set sht = ThisWorkbook.Sheets("Sheet1")
Set sht1 = Sheet1
Debug.Print sht.optClicked 'error
Debug.Print sht1.optClicked 'OK
End Sub
将Sheet1视为“工作表”的“子类”-在向工作表添加控件时,您正在添加新成员。通用工作表对象没有表示选项按钮的成员,而Sheet1有
Sub Test()
Dim sht As Worksheet
Dim sht1 As Sheet1
Set sht = ThisWorkbook.Sheets("Sheet1")
Set sht1 = Sheet1
Debug.Print sht.optClicked 'error
Debug.Print sht1.optClicked 'OK
End Sub
其他方法:工作表上的ActiveX控件可以从两个集合中访问:形状和OLEObjects。您可以使用OLEObjects集合访问复选框
Sub checkClicked()
Dim Page As Worksheet
Set Page = Worksheets("Info")
' 1/ ActiveX check box in Shapes collection
Dim myShape As Shape
Set myShape = Page.Shapes("optClicked")
' --------------------------------------
' 2/ ActiveX check box in OLEObjects collection
Dim myOLEObject As OLEObject
Set myOLEObject = Page.OLEObjects("optClicked")
' Use Object property to get access to your check box
Dim myCheckBox As Variant
Set myCheckBox = myOLEObject.Object
If (TypeOf myCheckBox Is MSForms.CheckBox) Then
Debug.Print myCheckBox.value
End If
End Sub
其他方法:工作表上的ActiveX控件可以从两个集合中访问:形状和OLEObjects。您可以使用OLEObjects集合访问复选框
Sub checkClicked()
Dim Page As Worksheet
Set Page = Worksheets("Info")
' 1/ ActiveX check box in Shapes collection
Dim myShape As Shape
Set myShape = Page.Shapes("optClicked")
' --------------------------------------
' 2/ ActiveX check box in OLEObjects collection
Dim myOLEObject As OLEObject
Set myOLEObject = Page.OLEObjects("optClicked")
' Use Object property to get access to your check box
Dim myCheckBox As Variant
Set myCheckBox = myOLEObject.Object
If (TypeOf myCheckBox Is MSForms.CheckBox) Then
Debug.Print myCheckBox.value
End If
End Sub
谢谢Peter,我尝试过将页面设置为工作表(“信息”),而不是将页面设置为工作表(“信息”),但它仍然没有optClicked数据成员谢谢Peter,我尝试过将页面设置为工作表(“信息”),而不是将页面设置为工作表(“信息”),但它仍然没有optClicked数据成员谢谢Christian,但你的方式对我仍然不起作用。我可以使用debug.print(“bla”)…以及debug.print“bla”进行调试。嗯,我没有打开显式选项。你收到什么样的错误消息?信息写得正确吗?如果没有,请简单地尝试:Set Page=ActiveWorkbook.Worksheets(1)这会将页面设置为第1页。optklicked是什么类型的数据?在任何情况下,使用option explicit,如果您不这样做,会出现各种小错误(搜索stackoverflow以获取解释)谢谢Christian,但您的方式对我仍然不起作用。我可以使用debug.print(“bla”)…以及debug.print“bla”进行调试.humm我没有打开option explicit。您收到了什么类型的错误消息?信息是否正确写入?如果没有,请简单尝试:Set Page=ActiveWorkbook。将页面设置为第一页的工作表(1)。optklicked是什么类型的数据?在任何情况下,使用option explicit,如果不正确,会出现各种小错误(搜索stackoverflow以获取解释)嗨,Jeffrey,我将其设置为…set Page=Worksheets(“Sheet1”)…甚至set Page=activeworkbook.Worksheets(“Sheet1”),但它仍然不认识到,嗨,Jeffrey,我将其设置为…set Page=Worksheets(“Sheet1”)…甚至set Page=activeworkbook.Worksheets(“Sheet1”)但它仍然没有意识到这一点,