Автоматически вставлять изображение во 2-й лист при вставке в 1-й - PullRequest
0 голосов
/ 20 декабря 2018

Я бы хотел, чтобы пользователь вставил изображение на лист и автоматически вставил его на второй лист.Я нашел некоторый код VB, который приближает меня, но не могу понять, как это закончить.Изображение будет изменяться от пользователя к пользователю, но я хотел бы, чтобы действие происходило, как только пользователь вставит изображение в E4.

Я нашел этот код, который помогает, но он не является автоматическим.

Sub InsertLogo2()
    Dim strPath As String
    Dim shtSheet As Worksheet

    strPath = "C:\GraphicFolder\PictureName.bmp"

    For Each shtSheet In Worksheets
        shtSheet.Activate
        Range("A1").Select
        ActiveSheet.Pictures.Insert (strPath)
    Next shtSheet
    Set shtSheet = Nothing
End Sub

Я новичок в VBA, поэтому очень борюсь с этим.

Спасибо!

1 Ответ

0 голосов
/ 20 декабря 2018

Вы можете использовать событие Worksheet_Activate второго листа, чтобы проверить на первом листе изображения и скопировать найденное.

Private Sub Worksheet_Activate()

    Dim shp As Shape, n As Long

    Application.ScreenUpdating = False
    Do While Me.Shapes.Count > 0
        Me.Shapes(1).Delete
    Loop

    n = 1
    For Each shp In Sheets("Sheet1").Shapes
        shp.Copy
        Me.Paste
        With Me.Shapes(n)
            .Left = shp.Left
            .Top = shp.Top
        End With
        n = n + 1
    Next shp
    Me.Range("A1").Select
    Application.ScreenUpdating = True

End Sub

Подойдет ли это или нет, зависит от вашего конкретного случая использования.

Примечание. Это может раздражать, если у ваших пользователей есть что-то в буфере обмена, который они хотели бы вставить....

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