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

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

首页冒险解谜Shapes更新时间:2024-08-01

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