我正在尝试编写一些代码来自动将一个按钮放入我的工作表中,当单击按钮时它将执行一些代码 . 我根据我从“Excel 2013 Power Programming with VBA”(p896)一书中看到的例子编写了我的代码 . 我使用的是Excel 2007但不确定它是否重要 . 无论如何,我修改了以下代码:
*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*
它适用于按钮部分,但在我添加下面定义按钮的部分之后,它给出了错误“下标超出范围”
谁能帮我弄清楚那里有什么问题?
非常感谢你!
1 回答
您的代码可以通过几个调整为我工作 .
在新工作簿中,工作表的
Name
和CodeName
将是相同的,因此在这种情况下您的原始行将起作用,但如果重命名工作表或其代码模块,则会失败 .