分享

学习VBA,报表做到飞 第六章 Shapes对象 6.4 批量插入图片

 拾叁亿人 2023-04-26 发布于云南

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

它会返回一个数值:-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) 读取选择的第一个结果

小程序:

文章图片2

有一组图片,存放在“F:\VBA学习\Nature”目录下,我们准备把它们按图片的名字批量插入到单元格右边的表格里。

文章图片3

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方法插入图片。程序运行后效果如下:

文章图片4

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多