简体   繁体   English

Workbook_Open 事件将工作簿中所有按钮的值设置为 false

[英]Workbook_Open event to set value of all buttons in workbook to false

I have a workbook with multiple sheets with command and toggle buttons.我有一个包含多张带有命令和切换按钮的工作簿。 I am trying to create Workbook_Open event that will set value of all buttons to false.我正在尝试创建将所有按钮的值设置为 false 的 Workbook_Open 事件。 Code below returns error: "Compile error: Method or data member not found" and highlights Private Sub Workbook_Open() line, so I don't know where to look for error.下面的代码返回错误: "Compile error: Method or data member not found"并突出显示Private Sub Workbook_Open()行,所以我不知道在哪里查找错误。 How to fix it or achieve it other way?如何修复它或以其他方式实现它?

Private Sub Workbook_Open()

Dim OleObj As OLEObject
    For Each OleObj In Sheets.OLEObjects
        If TypeName(OleObj.Object) = "ToggleButton" Or TypeName(OleObj.Object) = "CommandButton" Then
            OleObj.Object.Value = False
        End If
    Next OleObj
    
End Sub

You need to loop through each sheet in turn, and you don't need to process commandbuttons - for example:您需要依次遍历每个工作表,并且不需要处理命令按钮 - 例如:

Private Sub Workbook_Open()
Dim ws as worksheet
For each ws in activeworkbook.worksheets
    Dim OleObj As OLEObject
    For Each OleObj In ws.OLEObjects
        If TypeName(OleObj.Object) = "ToggleButton" Then
            OleObj.Object.Value = False
        End If
    Next OleObj
Next ws
End Sub

Give this a go:给这个 go:

Private Sub Workbook_Open()
    
    Dim OleObj As OLEObject
        For Each OleObj In Sheets.OLEObjects
            If OleObj.Name = "ToggleButton" Or OleObj.Name = "CommandButton" Then
                OleObj.Object.Value = False
            End If
        Next OleObj
        
    End Sub

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM