在第一个工作表中粘贴时自动将图像粘贴到第二个工作表中

时间:2018-12-19 22:00:55

标签: excel vba

我希望用户将图像粘贴到工作表中,然后自动将其粘贴到第二个工作表中。我发现一些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 :(得分:1)

您可以使用第二张纸的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

这是否合适取决于您的确切用例。

注意-如果您的用户想要在剪贴板中粘贴某些东西,这可能会很烦人。