标签:VBA
今天跟大家分享的技巧来自thesmallman.com,一个分享Excel技巧技术的网站。
下面的Excel VBA示例将使用少量的Excel VBA代码将图片从一个工作表移动到另一个工作表。为了实现这个目的,要考虑以下事情:
1.要移动的图片的名称。
2.当我们捕获到名称后,想把图片放到哪里。
3.如何处理所选内容要替换的图片?
这里,使用数据验证列表来选择一个国家(的国旗),而Excel VBA将完成其余的工作。以下是示例文件的图片,以方便讲解。
图1
所有图片(旗帜)都有一个名称(如中国、加拿大、巴哈马等),并将其添加到验证列表中。只需从蓝色下拉列表中选择要移动的图片名称,然后单击移动按钮,就可将相应的图片(旗帜)移动到另一个工作表。当然,这里可以调整让工作表事件来处理。
“移动”按钮调用的VBA程序如下:
Sub MovePicture()
Dim sh As Worksheet
Dim Pic As Object
Set sh = Sheet2
Application.ScreenUpdating = False
'先删除目标工作表中的所有图片
For Each Pic In Sheet1.Pictures
Pic.Delete
Next Pic
'复制下拉列表中选择的名称对应的图片
sh.Shapes([e13].Value).Copy
'粘贴到目标工作表
Sheet1.[d8].PasteSpecial
Application.ScreenUpdating = True
End Sub
上面简单的程序分为两个部分,首先从目标工作表中删除所有图片(Sheet1是目标工作表)。然后将单元格E13中名称对应的图片复制到工作表1的单元格D8。演示如下图2所示。
图2
有兴趣的朋友可以到原网站下载原始示例工作簿。也可以到知识星球App完美Excel社群下载汉化后的示例工作簿。