VBA Нужна помощь в определении активной ячейки, связанной с кнопкой включения макроса - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь создать счетчик, который показывает, сколько раз была нажата кнопка включения макроса.У меня проблемы с определением активной ячейки, связанной с кнопкой включения макроса.Он будет находиться в любом месте от ячейки 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 голосов
/ 28 февраля 2019

В макросе, прикрепленном к кнопке, Application.Caller даст вам имя кнопки / фигуры, вызывающей код:

Sub VBA_Love_It_msgbox3()
    With ActiveSheet.Shapes(Application.Caller).TopLeftCell.Offset(0, 1)
        .Value = .Value + 1
    End With
End Sub

РЕДАКТИРОВАТЬ: чтобы это работало, вам нужно убедиться, что все ваши кнопки всеимеют разные имена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...