6.4 批量插入图片
上一节我们学习了用AddPicture方法插入图片,今天我们来学习如何用这个方法来批量插入图片。
在学习批量插入图片之前,我们先来学习FileDialog属性。它的用法是这样的:
Application.FileDialog(FileDialogType)
FileDialogType指定FileDialog对象的类型:
msoFileDialogFilePicker | “文件选取器”对话框 |
msoFileDialogFolderPicker | “文件夹选取器”对话框 |
msoFileDialogOpen | “打开”对话框 |
msoFileDialogSaveAs | “另存为”对话框 |
在VBA程序里,FileDialog用show来展示:
Application.FileDialog(FileDialogType).show
比如我们在程序里录入Application.FileDialog(msoFileDialogFolderPicker).Show,展示后系统会弹出一个对话框,如下图所示:
它会返回一个数值:-1 表示我们已操作
0 表示我们未操作
我们选择后,选取的内容在FileDialog的SelectedItems属性中,可以用For each语句读取出来:
把FileDialog对象赋值给一个变量fd,用For each语句读取选取的内容。
Set fd=Application.FileDialog(msoFileDialogFolderPicker)
fd.Show
For each ss in fd.SelectedItems
......
Next
也可以象读取数组那样:
fd.SelectedItems(1) 读取选择的第一个结果
小程序:
有一组图片,存放在“F:\VBA学习\Nature”目录下,我们准备把它们按图片的名字批量插入到单元格右边的表格里。
Sub 批量插入图片()
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
fd.Show
文件夹 = fd.SelectedItems(1)
For Each ss In Range("a1", Cells(Rows.Count, 1).End(xlUp))
地址 = 文件夹 & "\" & ss.Value & ".jpg"
左 = ss.Offset(0, 1).Left
顶 = ss.Offset(0, 1).Top
宽 = ss.Offset(0, 1).Width
高 = ss.Offset(0, 1).Height
ActiveSheet.Shapes.AddPicture 地址, 1, 1, 左, 顶, 宽, 高
Next
End Sub
FileDialog用show展示后,弹出选择文件夹的对话框,选取“F:\VBA学习\Nature”目录,把它赋值给变量“文件夹”,然后用变量“文件夹”加 "\" 加循环到的单元格的值加 ".jpg"形成地址,再获取右移一个单元格的左、顶、宽、高,用AddPicture方法插入图片。程序运行后效果如下:
往期精彩回顾:
我是云飞扬,职场财会人员,愿与大家分享表格制作和数据统计分析的技巧与方法,希望大家的工作更便捷,更轻松!
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved