Ссылка на диапазон иконки / фигуры с помощью VBA - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь назначить макрос на значок увеличительного стекла.Этот макрос затем скопирует значение ячейки 4 столбца слева относительно ячейки, в которой находится значок увеличительного стекла.Мне трудно определить, как ссылаться на диапазон, в котором содержится такой объект, как увеличительное стекло.

Идея состоит в том, чтобы написать макрос и скопировать увеличительное стекло в каждую строку в этом столбце.

Например, на изображении ниже, когда я нажимаю на увеличительное стекло, вызывается назначенная процедура VBA и копируется значение «LA COE».

Magnifying_Glass_Example

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

1 Ответ

0 голосов
/ 30 ноября 2018

Каждая фигура имеет свойство TopLeftCell и BottomRightCell, которое вы можете использовать для этого:

Sub CopyCellValue()
    Dim s As Shape
    Debug.Print Application.Caller
    Set s = ActiveSheet.Shapes(Application.Caller)
    s.TopLeftCell.Offset(0, -4).Copy  'Or whatever
End Sub

Application.Caller будет содержать имя фигуры, которой назначен макрос,так что вы можете назначить один и тот же макрос каждому увеличительному классу.

Просто убедитесь, что ваши иконки действительно помещены в нужные ячейки.Это может особенно укусить вас, если вы попытаетесь выровнять их по пикселям по углам (например, перетаскивая один из углов формы с нажатой клавишей alt), в этом случае TopLeftCell / BottomRightCell может вместо этого ссылаться на соседние ячейки.

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