Есть ли способ для Excel, чтобы узнать, какая фигура с назначенным макросом была нажата? - PullRequest
1 голос
/ 19 марта 2020

Я добавил несколько фигур к своему рабочему листу. Я назначил им макросы. Но мне пришлось создавать отдельные макросы для всех.

Существует ли способ для Excel определить, какая фигура была нажата, и на основе ее текстового значения найти ячейку для копирования. Таким образом, мне не нужно создавать отдельные макросы для каждой фигуры.

Я попытался найти его в Интернете, нашел несколько вещей, которые я пытался, но не работал.

Любая помощь будет с благодарностью.

1 Ответ

1 голос
/ 19 марта 2020

Да, здесь можно использовать свойство Application.Caller .

Option Explicit 

Public Sub MyShapeMacro_Click()
    Dim CalledByShape As Shape
    Set CalledByShape = ActiveSheet.Shapes(Application.Caller)

    'CalledByShape is your shape
    Debug.Print CalledByShape.OLEFormat.Object.Text 'returns the text of the shape
End Sub

Свяжите этот макрос MyShapeMacro_Click со всеми вашими фигурами.

Обратите внимание на этот макрос не может быть запущен в редакторе VBA (он выдаст исключение), его можно запустить, только нажав форму.

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