如何在 Excel 表中识别通用按钮控件?

如何在 Excel 表中识别通用按钮控件?

我创建了一个带有命名表的 Excel 工作表。在第一行的左边框上,我添加了一个标记为“+”的按钮控件。此按钮运行一个宏,该宏始终在表的底部添加一个新的最后一行。任何新行也包含此按钮的副本(尽管 A 列中的按钮本身不在命名表的区域中)。无论如何,所有这些通用按钮的功能完全相同。

现在,我想以相同的方式添加另一个按钮(“-”),但这次我想删除我单击的按钮所在的行。为此,我必须确定单击的确切按钮并找出它所在的行。

它看起来像这样:

在此处输入图片描述

这可能吗?如何可能?

编辑:针对评论:

在末尾添加新行的代码:

ActiveSheet.ListObjects("TimeSheetTable").Resize Range("$B$" & HEADERROW & ":$H$" & iNewRow)

'Duplicate the previous row
Rows(iNewRow- 1).Select
Application.CutCopyMode = False
Selection.Copy
Rows(iNewRow).Select
ActiveSheet.Paste
Application.CutCopyMode = False

答案1

我建议您使用以下 VBA 代码。您需要使用要识别为已单击的命令按钮来调用它。

Sub WhichOneClicked()

  Dim b As Object, iBtnRow As Integer
  Set b = ActiveSheet.Buttons(Application.Caller)

  With b.TopLeftCell
    iBtnRow= .Row
  End With

 MsgBox "Row Number " & iBtnRow

End Sub

希望这对你有帮助。

答案2

我还有一个解决方案,它更简单,直接识别单击的按钮。它的范围有限,但简单易懂,所有人都能理解。

Private Sub CommandButton1_Click()

Dim ButtonName
ButtonName = "CommandButton1"
MsgBox "You have clicked the " & ButtonName & " just now button."

End Sub

注意:除了此代码外,还可以包含其他 VBA 代码,或者在其他代码中调用它。

相关内容