Excel VB 点击按钮1在现有的Userform上创建一个新按钮控件,点击按钮2保存按钮1触发时新增的按钮控件和其代码在VBA内 如何实现
时间: 2024-05-19 17:15:15 浏览: 6
可以通过以下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。
相关问题
Excel VB 点击按钮在现有的Userform上创建一个新按钮控件并保存新增的按钮控件和其代码在VBA内 如何实现
可以使用以下代码实现:
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 点击按钮在现有的Userform上创建一个按钮并保存改按钮的带码在VBA 内,
这是一个可以回答的技术问题。在Excel VBA中,可以使用以下代码来创建一个按钮并保存其代码:
Sub CreateButton()
Dim newButton As Object
'创建一个新的CommandButton对象
Set newButton = ThisWorkbook.VBProject.VBComponents("UserForm1").Designer.Controls.Add("Forms.CommandButton.1")
'给按钮设置名称和显示文本
newButton.Name = "Button1"
newButton.Caption = "点击我"
'给按钮设置位置和大小
newButton.Width = 80
newButton.Height = 30
newButton.Top = 50
newButton.Left = 50
'给按钮设置执行的代码
newButton.OnClick = "Button1_Click"
'保存新创建的按钮的代码到VBA
ThisWorkbook.VBProject.VBComponents("UserForm1").CodeModule.InsertLines _
ThisWorkbook.VBProject.VBComponents("UserForm1").CodeModule.CountOfLines + 1, _
"Private Sub Button1_Click()" & vbCrLf & _
" '在这里编写按钮点击后要执行的代码" & vbCrLf & _
"End Sub"
End Sub
请将上面代码中的 UserForm1 和 Button1 替换成您自己的代码。