Картинная группа установлена ​​на Диапазон - PullRequest
1 голос
/ 29 апреля 2020

Извиняюсь, еще один нубский вопрос. Мне было поручено написать документ в Excel, на обложке много изображений, и я сгруппировал эти изображения вместе. Так как есть риск, что пользователь может переместить эту группу. Я хочу установить его так, чтобы каждый раз, когда этот лист был выбран, он возвращался в исходное положение. Я просмотрел сеть и не могу найти что-то для группы изображений.

Я пробовал это, и это не работает вообще. :(

Private Sub Worksheet_Activate()
Dim PicGroup As GroupShapes


With Range("A1")
    PicGroup.Name = "HeaderGrp"
    PicGroup.Visible = True
    PicGroup.Top = .Top
    PicGroup.Left = .Left
End With
End Sub

Итак, моя группа изображений, которую я назвал HeaderGrp Я поместил это в Activate Worksheet в VBA, и я хочу, чтобы это всегда перемещалось или фиксировалось в ячейках A1.

Я также хотел бы, чтобы это соответствовало ширине и длине страницы, если кто-нибудь знает, как это сделать.

Снимок того, что я хотел бы: - 1) при выборе листа группа изображений перемещается в правильное местоположение. 2) группа изображений автоматически подстраивается под ширину и высоту страницы.

Заранее спасибо,

Ответы [ 2 ]

3 голосов
/ 29 апреля 2020

Это работает для меня. Изображения выглядят как тип Shape.

Private Sub Worksheet_Activate()

Dim p As Shape

With activesheet
    Set p = .Shapes("Pics") 'name
    p.Top = .Range("a1").Top
    p.Left = .Range("a1").Left
End With

End Sub
0 голосов
/ 29 апреля 2020

Этот фрагмент кода должен получить ваши сгруппированные изображения:

Option Explicit
Private Sub Worksheet_Activate()

    Dim shp As Shape
    Dim PicGroup As GroupShapes

    'loop through all your shapes
    For Each shp In Me.Shapes
        'if the shape is grouped then
        'set your PicGroup variable
        'and exit the loop
        If shp.Type = msoGroup Then
            Set PicGroup = shp.GroupItems
            Exit For
        End If
    Next shp

    With Range("A1")
        PicGroup.Name = "HeaderGrp"
        PicGroup.Visible = True
        PicGroup.Top = .Top
        PicGroup.Left = .Left
    End With

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