ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 35767|回复: 46

[分享] Excel批量导入图片

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2015-3-23 16:15 | 显示全部楼层 |阅读模式
本帖最后由 开心妙妙 于 2015-3-23 16:40 编辑


主题:Excel 如何批量导入图片

效果见动画:
001.gif

       在ecxel里插入图片应该是人人都会,但是要求你插入几十张图片,那就麻烦了,总不能一张张地插入吧。
       有个好方法,需要用到Ecxel里的宏:

       这里用一个员工的名单与相片做例子

  步骤1:准备文件
    首先在同一个文件夹里新建一个电子表格Excel,还有一个员工的相片,图片是.JPG格式的。
       AA.png

      
步骤2:准备相片文件
准备好员工的相片顺序,命名为001002003……(如上图)


步骤3:准备电子表格
电子表格的Sheet1工作表A列为员工号001002003……
B列为姓名(姓名的顺序要与相片的顺序一致)
C为相片(把C列的大小按照相片的大小调好)


步骤4:编写VBA代码

Sub 批量导入相片()
    Dim i, myPath$
    myPath = ThisWorkbook.Path & "\" '获取当前文件的路径
    For i = 2 To 11
        Range("C" & i).Select
        ActiveSheet.Pictures.Insert(myPath & Range("A" & i) & ".jpg").Select
        '在选中的位置插入图片
        'myPath 相位的路径
        'Range("A" & i) 相片的文件名,如果相片用B列的姓名命名也可以的
        '要有相片路径+名称+后缀
    Next i
End Sub


注:如果员工相片有独立的文件夹,如下图所示

bb.png
代码改成:

Sub 批量导入相片()
    Dim i, myPath$
    myPath = ThisWorkbook.Path & "\"
    For i = 2 To 11
        Range("C" & i).Select
        ActiveSheet.Pictures.Insert(myPath & "员工相片\" & Range("A" & i) & ".jpg").Select
        'myPath excel文件+员工相片\
        'Range("A" & i) 相片的文件名,如果相片用B列的姓名命名也可以的
        '要有相片路径+名称+后缀
    Next i
End Sub


导入的相片,也许并不是你想要的尺寸,这时CTRL+G定位--对象-改变相片尺寸,以便统一尺寸

评分

3

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-23 16:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
用宏批量导入相片.rar (1.07 MB, 下载次数: 3712)

TA的精华主题

TA的得分主题

发表于 2015-3-23 18:10 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-3-30 00:21 | 显示全部楼层
很全,很详细,很强大,感谢楼主分享

TA的精华主题

TA的得分主题

发表于 2015-4-1 15:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
很实用的技术,学习了

TA的精华主题

TA的得分主题

发表于 2015-4-2 22:28 | 显示全部楼层
批量导入图片.xlsm与文件夹“员工相片”如果不在同一目录下
比如“员工相片”存在U盘,可否在执行VBA时,油人工选择“员工相片”路径
“员工相片”也许在D盘,也许在E盘。。。
“员工相片”这个文件夹也许叫做“员工照片”
此时,VBA如何写?

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-4-3 09:30 | 显示全部楼层
本帖最后由 开心妙妙 于 2015-4-3 09:35 编辑
APPLE123 发表于 2015-4-2 22:28
批量导入图片.xlsm与文件夹“员工相片”如果不在同一目录下
比如“员工相片”存在U盘,可否在执行VBA时,油 ...


把myPath 变量用你指定的路径代替就可以了,例如这样:E:\用宏批量导入相片\"

这样通用性较差,写好了代码,你给别人用的时候,又移其它的目录去了,这样就无法正常运行了

TA的精华主题

TA的得分主题

发表于 2015-4-7 20:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
把myPath 变量用你指定的路径代替就可以了,例如这样:E:\用宏批量导入相片\"

如果这样,VBA的通用性就差一些了

VBA应当可以人工选择、指定路径的,这样就会有较强的通用性

TA的精华主题

TA的得分主题

发表于 2015-9-28 13:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

若相片是以列的方式呈現?ex:
B2~F2

又若是以2列的方式呈現?ex:
B2~F2 &
B4~F4

TA的精华主题

TA的得分主题

发表于 2015-9-28 14:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
在楼主代码的基础上修改了一下,实现了自动导入图片并指定了图片的位置和大小。
  1. Sub 批量导入相片jpj123()
  2.     Dim i, myPath$, a1, a2, b1, b2
  3.     Dim Pa As Picture
  4.     myPath = ThisWorkbook.Path & "" '获取当前文件的路径
  5.     Application.ScreenUpdating = False
  6.     For Each Pa In ActiveSheet.Pictures
  7.         Pa.Delete
  8.     Next
  9.    
  10.     For i = 2 To 11
  11.         a1 = 0: a2 = 0: b1 = 0: b2 = 0
  12.         Range("C" & i).Select
  13.         a1 = ActiveCell.Left
  14.         a2 = ActiveCell.Top
  15.         b1 = ActiveCell.Width
  16.         b2 = ActiveCell.Height
  17.         ActiveSheet.Pictures.Insert(myPath & Range("A" & i) & ".jpg").Select
  18.         Selection.ShapeRange.LockAspectRatio = False
  19.         Selection.ShapeRange.Left = a1 + 1
  20.         Selection.ShapeRange.Top = a2 + 1
  21.         Selection.ShapeRange.Width = b1 - 2
  22.         Selection.ShapeRange.Height = b2 - 2
  23.     Next i
  24.     Application.ScreenUpdating = True
  25.     MsgBox "完成!"
  26. End Sub
复制代码

评分

2

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-27 02:39 , Processed in 0.047692 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表