VBA:从另一个工作表问题中复制图片;剪贴板无法清除?

时间:2019-06-17 00:53:11

标签: excel vba image copy paste

我有两个工作表; calsketch。在sketch中,我有两张图片; Picture 1Picture 2。在工作表cal中,我有一个带有下拉列表的单元格;列表的内容为'Port''Starboard'

当下拉列表更改时,我希望将图片1或图片2复制到cal.Cells(25, 1);替换之前的所有图片。

我有用于更改单元格的代码,它复制了一张图片。它总是会复制图片1。

Sub import_sketch()

    Dim my_sketch As Picture

    If Cells(8, 27) = "Port" Then

        Set my_sketch = sketch.Pictures("Picture 1")
        my_sketch.Copy
        cal.Cells(25, 1).PasteSpecial

    End If

    If Cells(8, 27) = "Starboard" Then

        Set my_sketch = sketch.Pictures("Picture 2")
        my_sketch.Copy
        cal.Cells(25, 1).PasteSpecial

    End If

End Sub

当前,无论下拉列表中的内容是什么,该脚本仅粘贴在图片1中。我知道右舷If语句正在工作。剪贴板似乎没有清除,只是复制了列表中的第一个?不确定。

1 个答案:

答案 0 :(得分:0)

正如评论所指出的那样,您的问题是您复制了正确的图片但没有删除旧的图片。

但是,为什么不一次又一次地复制(和删除)图像,为什么不将它们都复制一次到表中,然后简单地设置Visible属性以显示所需的图像并隐藏另一个?

命名图片picStarboardpicPort并将代码更改为

With cal 
    .Shapes("picStarboard").Visible = (.Cells(8, 27) = "Starboard")
    .Shapes("picPort").Visible = (.Cells(8, 27) = "Port")
End With