ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

Excel批量插入图片并排列图片

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-4-11 17:19 | 显示全部楼层 |阅读模式
各位大神:
小弟想烦请大神指教一下,具体要求如下:
1.前提是Excel单元格的列宽度不能变.
2.VBA批量插入图片的方式,插入图片张数为1张~5张不等.
3.插入图片后,需要用VBA代码按照"序号5"下方的排列方式和间距进行
  排列,需要肉眼看起来差不多水平及间距相等就行.
4.批量插入的图片尺寸大小是一样的.


案例.rar

1.48 MB, 下载次数: 61

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-4-11 21:14 | 显示全部楼层
这是没有大神帮忙吗?

TA的精华主题

TA的得分主题

发表于 2022-4-11 23:32 | 显示全部楼层
shangqijiang 发表于 2022-4-11 21:14
这是没有大神帮忙吗?

"插入图片张数为1张~5张不等"——但插入图片的条件却没说,如何确定”序号5"即23行插入哪几张呢?,序号6,在哪里,又插入几张?........
难怪十几人下载了都没法回复,
插入条件明确了,那就简单了,还是先全部先按条件插入A列对应单元格(全部重叠一堆都无所谓),再循环一下按行辅开图片就好了,无非就是设定 pic.Top 和 pic.Left 罢了




TA的精华主题

TA的得分主题

发表于 2022-4-12 07:32 | 显示全部楼层
求助务必把需求描述清楚,才可能得到别人的帮助,插入图片的问题,我的主题里有分享的帖子,可以去看看,也许对你有帮助,

TA的精华主题

TA的得分主题

发表于 2022-4-12 14:06 | 显示全部楼层
插入文件夹内图片并5个为一排
  1. Option Compare Text
  2. Sub StoPic()
  3.     Dim Fso, ff, f, prr(), r, c, i, j, k, p, q
  4.     Dim Pl, Pt, Pw, Ph, Img 'As ImageFile
  5.     Set Img = CreateObject("WIA.ImageFile")
  6.     On Error Resume Next
  7.     Set Fso = CreateObject("scripting.filesystemobject")
  8.     Set ff = Fso.Getfolder(ThisWorkbook.Path & "\案例")
  9.     ReDim prr(1 To ff.Files.Count)
  10.     p = 0
  11.     For Each f In ff.Files
  12.         If InStr(f, ".JPG") Then
  13.            p = p + 1
  14.            prr(p) = f
  15.         End If
  16.     Next
  17.     i = 0
  18.     With Sheet1
  19.     Call delshp
  20.     For q = 1 To p
  21.         Img.LoadFile prr(q)
  22.         Pw = Img.Width / 2
  23.         Ph = Img.Height / 2
  24.         c = q Mod 5
  25.         If c = 1 Then
  26.            i = i + 1
  27.            r = 2 + (i - 1) * 21
  28.         Else
  29.            If c = 0 Then c = 5
  30.         End If
  31.         Pl = (c - 1) * (Pw + 10)
  32.         Pt = .Range("A" & r).Top
  33.         .Shapes.AddPicture prr(q), True, True, Pl, Pt, Pw, Ph
  34.     Next
  35.     End With
  36.     MsgBox "ok!"
  37. End Sub

  38. Sub delshp()
  39.     Dim shp As Shape
  40.      For Each shp In Sheet1.Shapes
  41.          If shp.Type <> 8 And shp.Type <> 12 Then
  42.             shp.Delete
  43.          End If
  44.      Next
  45. End Sub
复制代码

楼主附件似乎有病毒,请自行测试

TA的精华主题

TA的得分主题

发表于 2022-4-12 17:20 | 显示全部楼层
aman1516 发表于 2022-4-12 14:06
插入文件夹内图片并5个为一排

楼主附件似乎有病毒,请自行测试

有没有找到是什么代码病毒,下载下来第一次打开好像会自动运行什么,后面看不到了,也没见有代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-4-12 21:08 | 显示全部楼层
鑫尼达 发表于 2022-4-12 17:20
有没有找到是什么代码病毒,下载下来第一次打开好像会自动运行什么,后面看不到了,也没见有代码

我没有写代码,只是一个纯案例而已.我确认过了,压缩档里面是没有病毒的.请再确认一下,谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-4-12 21:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 shangqijiang 于 2022-4-12 22:37 编辑
aman1516 发表于 2022-4-12 14:06
插入文件夹内图片并5个为一排

楼主附件似乎有病毒,请自行测试

大神,您好,
首先特别感谢您无私的帮助,这个的确就是我所需要的功能,
我写错了两点,可否再帮忙优化以下两点:
1.插入的图片格式限制为(.jpg,.bmp,.gif,.png)等格式。
2.图片插入至Excel后,将图片大小尺寸统一等比缩放为:高度(6.77厘米)、宽度(9.03厘米)。

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-4-13 13:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
aman1516 发表于 2022-4-12 14:06
插入文件夹内图片并5个为一排

楼主附件似乎有病毒,请自行测试

还请您再操刀修改一下,麻烦了,谢谢

TA的精华主题

TA的得分主题

发表于 2022-4-13 16:14 | 显示全部楼层
shangqijiang 发表于 2022-4-13 13:09
还请您再操刀修改一下,麻烦了,谢谢

1)将 If InStr(f, ".JPG") Then  改为下面代码(自己选择哪些图片类别)
        If InStr(f, "bmp") Or InStr(f, "png") Or InStr(f, "jpg") Or InStr(f, "jpeg") Or InStr(f, "gif") Or InStr(f, "tif") Or InStr(f, "wmf") Or InStr(f, "ico") Or InStr(f, "cur") Then           ' 不支持"png"格式图片
2)将  Pw = Img.Width / 2
          Ph = Img.Height / 2  这两句改为指定值即可
如:   Pw = 345
          Ph = 260  即可


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

本版积分规则

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

GMT+8, 2024-11-16 07:21 , Processed in 0.046930 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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