在excel中dynamic添加button

我是新的Excelmacros编码,我有一个要求,在Excel中,用户在列A中input一些数值,一旦他退出屏幕,一个新的button应该在同一行生成列G的标签与列A中的值相同,macrosfunction将被添加到button。

另外,如果用户从列A的行中删除了该值,那么相应的button也应该被删除。

我尝试了某些论坛,但无法find创build焦点button的代码。

请帮忙。

试试这个代码:

Private Const mcStrButtonAddress As String = "D3" 'The cell or range which is used for top and left position of button Private Const mcStrMacroToRun As String = "Macro1" Private Const mcStrButtonName As String = "Button" 'Used internally to delete button Private Sub Worksheet_Change(ByVal Target As Range) If Application.Intersect(Target, Range("A1")) Is Nothing Then Exit Sub 'To disable endless loop Application.EnableEvents = False 'Delete button On Error Resume Next Me.Buttons(mcStrButtonName).Delete On Error GoTo 0 'Insert button With Me.Buttons.Add( _ Range(mcStrButtonAddress).Left, _ Range(mcStrButtonAddress).Top, _ Range(mcStrButtonAddress).Width, _ Range(mcStrButtonAddress).Height) 'Configure button .Name = mcStrButtonName .Characters.Text = Target.Value .OnAction = mcStrMacroToRun End With 'Reenable events Application.EnableEvents = True End Sub 

您需要将其插入工作表的代码模块中。