我有两个工作表; cal
和sketch
。在sketch
中,我有两张图片; Picture 1
和Picture 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语句正在工作。剪贴板似乎没有清除,只是复制了列表中的第一个?不确定。
答案 0 :(得分:0)
正如评论所指出的那样,您的问题是您复制了正确的图片但没有删除旧的图片。
但是,为什么不一次又一次地复制(和删除)图像,为什么不将它们都复制一次到表中,然后简单地设置Visible
属性以显示所需的图像并隐藏另一个?
命名图片picStarboard
和picPort
并将代码更改为
With cal
.Shapes("picStarboard").Visible = (.Cells(8, 27) = "Starboard")
.Shapes("picPort").Visible = (.Cells(8, 27) = "Port")
End With