Excel VB 点击按钮在现有的Userform上创建一个新按钮控件并保存新增的按钮控件和其代码在VBA内 如何实现
时间: 2024-05-19 14:14:59 浏览: 80
可以使用以下代码实现:
1. 创建新按钮控件并添加到现有Userform上
Dim newButton As MSForms.CommandButton
Set newButton = Me.Controls.Add("Forms.CommandButton.1", "newButtonName", True)
'newButtonName为新按钮的名称,True表示新添加的按钮是可见的
2. 保存新增的按钮控件和其代码在VBA内
'在新按钮控件上编写点击事件的VBA代码
Private Sub newButtonName_Click()
'这里编写新按钮点击事件的VBA代码
End Sub
'保存新增的VBA代码
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With ThisWorkbook.VBProject.VBComponents("UserForm1").CodeModule
.InsertLines .CreateEventProc("Click", "newButtonName")
End With
End Sub
这样就可以在现有的Userform上创建新的按钮控件,并且自动保存新增的按钮和其代码在VBA内。
相关问题
Excel VB 点击按钮1在现有的Userform上创建一个新按钮控件,点击按钮2保存按钮1触发时新增的按钮控件和其代码在VBA内 如何实现
可以通过以下VBA代码实现:
在按钮1的Click事件中添加:
Dim newButton As MSForms.CommandButton
Set newButton = UserForm1.Controls.Add("Forms.CommandButton.1", "ButtonName")
With newButton
.Left = 50 '控件左侧的位置
.Top = 50 '控件顶部的位置
.Width = 100 '控件的宽度
.Height = 40 '控件的高度
.Caption = "New Button" '控件的文字
.Tag = "ButtonTag" '控件的标记,用于保存和查找按钮
End With
在按钮2的Click事件中添加:
Dim btn As MSForms.CommandButton
For Each btn In UserForm1.Controls
If btn.Tag = "ButtonTag" Then '判断是否为新添加的按钮
'保存按钮信息到VBA
MsgBox "保存按钮:" & btn.Caption
Exit For
End If
Next btn
这样就可以在点击按钮1时新增一个按钮控件,同时在点击按钮2时保存新添加的按钮和其代码到VBA。
阅读全文