图10.38所示的工作表中有29个图片名称,而在图10.39所示的“E:\服装图片”路径下则有对应的29张图片。有没有办法把每个单元格中的图片名称所对应的图片一次性插入到右边的单元格中,同时统一图片宽度和高度呢?

Excel 根据单元格中的名称批量插入图片-Excel22

图10.38 工作表中的图片名称

Excel 根据单元格中的名称批量插入图片-Excel22

图10.39 磁盘中的图片

解题步骤

Excel允许批量插入图片,但是无能力按指定位置插入且统一所有图片的高度和宽度,因此本例借用网页代码辅助工具来实现此需求,具体操作步骤如下。

1.由于图片较大,不可能按图片的原来大小显示在单元格中,因此需要按比例缩小图片。通常图片的高度调为“80”比较适合查看,因此在B2单元格输入以下公式:

Excel 根据单元格中的名称批量插入图片-Excel22

整 句 公 式 的 作 用 是 生 成 一 句 网 页 代 码 “<table><img src="E:\服 装 图 片\a-001.jpg"height="80">”,此代码可以引用E盘下“服装图片”文件夹中的图片“a-001.jpg”,而且引用图片时自动调整其高度为80。

2.双击 B2 单元格的填充柄,将公式向下填充到最后一个非空行,公式会为每一个图片名称生成一句网页代码,效果如图10.40所示。

Excel 根据单元格中的名称批量插入图片-Excel22

图10.40 网页代码

3.复制B2:B29区域的值。

4.在任意文件夹中的空白区域单击右键,然后依次单击右键菜单的“新建”→“文本文档”。

5.双击打开新建的文本文档,然后按组合键<Ctrl+V>粘贴网页代码。

6.在文本文档中按下组合键<Ctrl+A>全选所有字符,再按下组合键<Ctrl+C>复制文本。

7.返回工作表界面,选择B2单元格后按下组合键<Ctrl+V>粘贴网页代码,在粘贴网页代码时,Excel会将网页代码转换成代码所引用的图片,效果如图10.41所示。

8.选择第2行到第30行,然后将单元格行高调整为80像素,使行高等于图片的高度,效果如图10.42所示。

Excel 根据单元格中的名称批量插入图片-Excel22

图10.41 粘贴网页代码时自动引用图片

Excel 根据单元格中的名称批量插入图片-Excel22

图10.42 将行高调整为80像素

9.调整B列的列宽,使其等于图片的宽度。

知识扩展

1.代码“<table><img src="E:\服装图片\a-001.jpg"height="80">”中的“<table>”代表列表,这句代码能让图片以列表的形式出现,每个图片都插入到代码所在单元格的位置。如果删除“<table>”,则插入图片后图片会凌乱排列在工作表中,需要人工调整位置。

2.网页代码“<img src=…>”代表引用指定位置的图片,img代表图片,src则是英文单词source的缩写,代表图片的路径,因此在等号后面赋值为图片路径即可引用图片。

3.网页代码中的img支持src、height和width等参数,height代表图片高度,width代表图片宽度,通常只需要指定高度即可,在Excel中插入图片后图片的宽度会随高度的变化而相应地变化,图片比例总是保持不变。

4.单元格的行高有两个单位,一是磅,显示在左边;二是像素,显示在右方括号中,在调整行高时只需要查看右方的像素值即可。

图片的高度和宽度都以像素为单位。

5.测试本例代码时,一定要注意图片的路径和公式中的路径一致,否则无法导入图片。当图片移动位置后,公式也需要相应地修改。