在此处使用其他人的代码,之前的代码生成一个名为“Test”的工作表。下面的代码是我从另一篇文章中找到的,并且已经对其进行了调整。目的是创建一个粘贴在“测试”表上的按钮,并在生成“测试”表后调用宏“邮件”。
问题是当前代码确实生成了一个正确位置的按钮,但是一旦单击该按钮,它就不会执行任何操作/不运行Mail()子代码。
Dim Obj As Object
Dim cmod
Dim Code As String
With ThisWorkbook.Worksheets("Test")
Set Obj = .OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Link:=False, DisplayAsIcon:=False, Left:=435, _
Top:=106.5, Width:=89.25, Height:=38.25)
Obj.Name = "ButtonTest"
Obj.Object.Caption = "Email Workbook"
Obj.Object.OnAction = "ButtonTest_Click"
Code = "Sub ButtonTest_Click()" & vbCrLf & _
"Call Mail" & vbCrLf & _
"End Sub"
With .Parent.VBProject.VBComponents(.CodeName).CodeModule
.insertlines .CountOfLines + 1, Code
End With
End With
答案 0 :(得分:1)
我无法让您的代码在Excel 2016中完全正常工作,在尝试添加按钮时会出现一些无法调试的错误。请尝试使用此类似代码:
Sub foo()
Dim Obj As Object
With ThisWorkbook.Worksheets("Test")
Set Obj = .Buttons.Add(Left:=435, Top:=106.5, Width:=89.25, Height:=38.25)
Obj.Name = "ButtonTest"
Obj.Caption = "Email Workbook"
Obj.OnAction = "Email_Template.Mail"
End With
End Sub
以上假定Email_Template
是中的代码模块与ThisWorkbook
相同的工作簿。