如何使用VBA在Excel中查找和选择复选框
我有一本工作簿,里面有许多工作表和数百个复选框、开关等 在我继承的代码中的某个地方 “FlashCopy_chkbox.Enabled=False” 不起作用。我需要找到该复选框/切换在同一文件的早期版本中的位置如何使用VBA在Excel中查找和选择复选框,excel,vba,Excel,Vba,我有一本工作簿,里面有许多工作表和数百个复选框、开关等 在我继承的代码中的某个地方 “FlashCopy_chkbox.Enabled=False” 不起作用。我需要找到该复选框/切换在同一文件的早期版本中的位置 简单地说,如何使用vba选择引用的内容并将其置于屏幕中心?您不能直接从工作表模块外部调用工作表上的控件。FlashCopy\u chkbox是否在脚本中的某个地方声明设置FlashCopy\u chkbox=工作表(“Sheet1”)。FlashCopy\u chkbox 无论如何,这
简单地说,如何使用vba选择引用的内容并将其置于屏幕中心?您不能直接从工作表模块外部调用工作表上的控件。
FlashCopy\u chkbox
是否在脚本中的某个地方声明<代码>设置FlashCopy\u chkbox=工作表(“Sheet1”)。FlashCopy\u chkbox无论如何,这会找到它
Sub LookForFlash()
Dim ws As Worksheet
Dim ck As OLEObject
For Each ws In ThisWorkbook.Worksheets
On Error Resume Next
Set ck = ws.OLEObjects("FlashCopy_chkbox")
If Err = 0 Then
MsgBox ws.Name
End If
On Error GoTo 0
Next ws
End Sub
我知道你正在寻找一个内置的方法,但在未来请张贴一些代码。堆栈溢出用于帮助改进现有代码。您不能直接从工作表模块外部调用工作表上的控件。
FlashCopy\u chkbox
是否在脚本中的某个地方声明<代码>设置FlashCopy\u chkbox=工作表(“Sheet1”)。FlashCopy\u chkbox无论如何,这会找到它
Sub LookForFlash()
Dim ws As Worksheet
Dim ck As OLEObject
For Each ws In ThisWorkbook.Worksheets
On Error Resume Next
Set ck = ws.OLEObjects("FlashCopy_chkbox")
If Err = 0 Then
MsgBox ws.Name
End If
On Error GoTo 0
Next ws
End Sub
我知道你正在寻找一个内置的方法,但在未来请张贴一些代码。堆栈溢出用于帮助改进现有代码。以下代码将在VBE的
立即窗口中列出工作簿中所有工作表上的所有ActiveX控件。此外,代码将列出所有表单控件选项按钮
,复选框
,以及所有表单上的按钮
:
Option Explicit
Public Sub FindThemAll()
Dim ws As Worksheet
Dim obj As OLEObject
Dim opt As OptionButton
Dim chk As CheckBox
Dim cmd As Button
For Each ws In ThisWorkbook.Worksheets
'Handling all ActiveX controls
For Each obj In ws.OLEObjects
Debug.Print "---------------------------------------------"
Debug.Print "ActiveX component on sheet: " & ws.Name
Debug.Print "Location on sheet: " & obj.TopLeftCell.Address
Debug.Print "Name of the component: " & obj.Name
Debug.Print "Object type: " & TypeName(obj.Object)
Next obj
'Handling Form Controls
For Each opt In ws.OptionButtons
Debug.Print "---------------------------------------------"
Debug.Print "Form control on sheet: " & ws.Name
Debug.Print "Location on sheet: " & opt.TopLeftCell.Address
Debug.Print "Name of the component: " & opt.Name
Debug.Print "Object type: OptionButton"
Next opt
For Each chk In ws.CheckBoxes
Debug.Print "---------------------------------------------"
Debug.Print "Form control on sheet: " & ws.Name
Debug.Print "Location on sheet: " & chk.TopLeftCell.Address
Debug.Print "Name of the component: " & chk.Name
Debug.Print "Object type: CheckBox"
Next chk
For Each cmd In ws.Buttons
Debug.Print "---------------------------------------------"
Debug.Print "Form control on sheet: " & ws.Name
Debug.Print "Location on sheet: " & cmd.TopLeftCell.Address
Debug.Print "Name of the component: " & cmd.Name
Debug.Print "Object type: Button"
Next cmd
Next ws
End Sub
如果您有任何问题,请告诉我。以下代码将在VBE的立即
窗口中列出工作簿中所有工作表上的所有ActiveX控件。此外,代码将列出所有表单控件选项按钮
,复选框
,以及所有表单上的按钮
:
Option Explicit
Public Sub FindThemAll()
Dim ws As Worksheet
Dim obj As OLEObject
Dim opt As OptionButton
Dim chk As CheckBox
Dim cmd As Button
For Each ws In ThisWorkbook.Worksheets
'Handling all ActiveX controls
For Each obj In ws.OLEObjects
Debug.Print "---------------------------------------------"
Debug.Print "ActiveX component on sheet: " & ws.Name
Debug.Print "Location on sheet: " & obj.TopLeftCell.Address
Debug.Print "Name of the component: " & obj.Name
Debug.Print "Object type: " & TypeName(obj.Object)
Next obj
'Handling Form Controls
For Each opt In ws.OptionButtons
Debug.Print "---------------------------------------------"
Debug.Print "Form control on sheet: " & ws.Name
Debug.Print "Location on sheet: " & opt.TopLeftCell.Address
Debug.Print "Name of the component: " & opt.Name
Debug.Print "Object type: OptionButton"
Next opt
For Each chk In ws.CheckBoxes
Debug.Print "---------------------------------------------"
Debug.Print "Form control on sheet: " & ws.Name
Debug.Print "Location on sheet: " & chk.TopLeftCell.Address
Debug.Print "Name of the component: " & chk.Name
Debug.Print "Object type: CheckBox"
Next chk
For Each cmd In ws.Buttons
Debug.Print "---------------------------------------------"
Debug.Print "Form control on sheet: " & ws.Name
Debug.Print "Location on sheet: " & cmd.TopLeftCell.Address
Debug.Print "Name of the component: " & cmd.Name
Debug.Print "Object type: Button"
Next cmd
Next ws
End Sub
如果您有任何问题,请告诉我。循环检查每张工作表中的所有对象,并测试类型复选框
,然后测试名称(或仅测试名称)。找到所需内容后,将其激活。在每个工作表中的所有对象中循环并测试类型复选框
,然后测试名称(或仅测试名称)。一旦你找到你需要的,激活它。谢谢-。TopLeftCell。地址就是我要找的!谢谢-.TopLeftCell.Address就是我要找的!谢谢,这帮助我找到了工作表,然后将.TopLeftCell.Address定位到了准确的位置。太棒了!很高兴能够帮助您。谢谢,这帮助我找到了工作表,然后将.TopLeftCell.Address移到了确切的位置。太棒了!很高兴能帮助你。