我正在尝试创建一个计数器,该计数器显示单击启用宏的按钮的次数。我在识别与启用宏的按钮关联的活动单元时遇到了麻烦。从单元格A9到A50,它将在任何位置(我将在页面上使用多个宏按钮)。
代码需要直接在活动单元格的右边查看单元格,并在按下按钮时将1加到该数字上。我是VBA的新手,没有将建议的问题应用于我的方案。
如果该按钮有助于解决问题,则此处是将按钮放置在工作表上的方式。
Sub VBA_Input_Idea_inputbox()
Dim MyInp As String
Dim NextRow As Long
Dim Counter As Long
Dim btn As Button
Dim t As Range
Counter = Counter + 1
MyInp = VBA.Interaction.InputBox("Please input idea", "LEARNING REQUEST")
If MyInp = "" Then Exit Sub
NextRow = Cells(Rows.Count, 3).End(xlUp).row + 1
Range("C" & NextRow).Value = Excel.WorksheetFunction.Proper(MyInp)
Set t = ActiveSheet.Range("A" & NextRow)
Set btn = ActiveSheet.Buttons.Add(t.Left, t.Top, t.Width, t.Height)
With btn
.OnAction = "VBA_Love_It_msgbox3"
.Caption = "Vote for this Idea!"
.Name = "btn" & "Love This"
End With
Range("B" & NextRow) = Counter
End Sub
答案 0 :(得分:0)
在按钮所附的宏中,Application.Caller
将为您提供调用代码的按钮/形状的名称:
Sub VBA_Love_It_msgbox3()
With ActiveSheet.Shapes(Application.Caller).TopLeftCell.Offset(0, 1)
.Value = .Value + 1
End With
End Sub
编辑:要执行此操作,您需要确保所有按钮均具有不同的名称。