VBA需要帮助来识别与启用了宏的按钮相关联的活动单元格

时间:2019-02-28 15:45:25

标签: excel vba

我正在尝试创建一个计数器,该计数器显示单击启用宏的按钮的次数。我在识别与启用宏的按钮关联的活动单元时遇到了麻烦。从单元格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

1 个答案:

答案 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

编辑:要执行此操作,您需要确保所有按钮均具有不同的名称。