Excel 2007 VBA添加按钮的步骤

Excel 2007 VBA添加按钮的步骤,vba,excel,button,activex,Vba,Excel,Button,Activex,我正在尝试编写一些代码,自动将按钮放入工作表中,当单击按钮时,它将执行一些代码。我根据我在《Excel 2013用VBA进行Power编程》(第896页)一书中看到的示例编写了代码。我正在使用Excel2007,但不确定它是否重要。无论如何,我将代码修改为: *Sub AddButtonAndCode() Dim NewButton As OLEObject Dim NewSheet As Worksheet Set NewSheet = Worksheets("Sheet1")

我正在尝试编写一些代码,自动将按钮放入工作表中,当单击按钮时,它将执行一些代码。我根据我在《Excel 2013用VBA进行Power编程》(第896页)一书中看到的示例编写了代码。我正在使用Excel2007,但不确定它是否重要。无论如何,我将代码修改为:

*Sub AddButtonAndCode()  
Dim NewButton As OLEObject  
Dim NewSheet As Worksheet  
Set NewSheet = Worksheets("Sheet1")  
Set NewButton = NewSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Left:=5, Top:=5, Height:=25, Width:=100)  
Code = "Sub CommandButton1_Click()" & vbCrLf  
Code = Code & "  MsgBox ""???""" & vbCrLf  
Code = Code & "End Sub"
With ActiveWorkbook.VBProject.VBComponents(NewSheet.Name).CodeModule
    NextLine = .CountOfLines + 1
    .InsertLines NextLine, Code
End With
End Sub*
它适用于按钮部分,但在我添加了下面定义按钮的部分后,它给了我错误“下标超出范围”

有谁能帮我找出里面出了什么问题吗


多谢各位

您的代码对我来说很有用,但需要做一些调整

Sub AddButtonAndCode()

    Dim NewButton As OLEObject
    Dim NewSheet As Worksheet, Code As String
    Dim nextline As Long

    Set NewSheet = Worksheets("Sheet1")

    Set NewButton = NewSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
                       Left:=5, Top:=5, Height:=25, Width:=100)

    NewButton.Name = "CommandButton1"  '<<<<<<<<< ensure correct name

    Code = "Sub CommandButton1_Click()" & vbCrLf
    Code = Code & "  MsgBox ""???""" & vbCrLf
    Code = Code & "End Sub"

    'Use NewSheet.CodeName not NewSheet.Name
    With ActiveWorkbook.VBProject.VBComponents(NewSheet.CodeName).CodeModule
        nextline = .CountOfLines + 1
        .InsertLines nextline, Code
    End With

End Sub
Sub addButton和code()
将新按钮设置为对象
将新闻单变暗为工作表,代码为字符串
昏暗的下一条线一样长
设置新闻表=工作表(“表1”)
Set NewButton=NewSheet.OLEObjects.Add(类类型:=“Forms.CommandButton.1”_
左=5,顶=5,高=25,宽=100)

NewButton.Name=“CommandButton1”'它可以工作!谢谢!现在我要展开代码部分…希望它仍然有效…其他问题:如何将其转换为外接程序,以便在任何工作簿上运行它来放置按钮?