找不到工作表上的CommandButton

时间:2019-06-18 09:20:12

标签: excel vba

对于以下代码,我会收到此错误

  

未找到方法或数据成员。

Private Sub Workbook_Open()
    Dim ws1 As Worksheet: Set ws1 = Worksheets("Sheet1")

    With ws1.CommandButton1   ' Error apears here
        'Set Top/Height/Width/Left
    End With
End Sub

如果我使用以下代码,则一切正常:

Private Sub Workbook_Open()
    With Worksheets("Sheet1").CommandButton1
         'Set Top/Height/Width/Left
    End With
End Sub

我希望有人能帮助我了解为什么会发生此问题以及如何解决。因为我想编写一个较短的宏,而不总是写“ Worksheets(“ ...”)。CommandButton ..“

非常感谢:)

1 个答案:

答案 0 :(得分:2)

您可以使用以下方法执行相同操作:

Private Sub Workbook_Open()
    Dim obj As Object
    Set obj = Sheet1.CommandButton1
    With obj   ' Error apears here
        'Set Top/Height/Width/Left
    End With

End Sub

在我的示例中,我正在使用工作表的代号而不是常规名称。

我认为您发布的第一个版本不起作用的原因是CommandButton1不属于工作表对象模型。