ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 使用VBA图片批量多行多列排布

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-4-3 22:59 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助


最好上下左右图片与图片留有空白间隔
Sub 自动生成图片()
'
' 自动生成图片 宏
'


'
Worksheets(1).Select
lj = Sheet1.Cells(2, 4) '相片路径
xqm = Sheet1.Cells(1, 4) '小区名称
hs = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("图片").Select
Set myDocument = Worksheets("图片")
Rows("1:50").RowHeight = 375
For l = 1 To 100 Step 2
Columns(l).ColumnWidth = 55
Columns(l + 1).ColumnWidth = 30
For h = 1 To 50
i = i + 1 '第一列的行数
If i > hs Then GoTo 100:
wj = Sheet1.Cells(i, 2) '获取图片名称
hk = 375 * (h - 1)
lK = 150 * Int(l / 2)
myDocument.Shapes.addpicture lj & wj & ".jpg", True, True, lK, hk, 375, 375


Cells(h, l + 1).Value = Sheet1.Cells(i, 1).Value




Next h
Next l
100:
bb = lj & Format(Now(), "mmddhhmmss") & xqm & ".xls"
Sheets("Sheet2").Select
    Sheets("Sheet2").Copy
    ActiveWorkbook.SaveAs Filename:= _
        bb, FileFormat:=xlExcel8, _
        Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
        CreateBackup:=False
        ActiveWorkbook.Close
ThisWorkbook.Close False '模块里关闭工作簿,且不保存。
End Sub


Option Explicit
Sub select_rows()
    Dim i As Long, j As Long
    Dim myrange As Range
    For i = 2 To Sheet2.Range("C1").Value * 2 Step 2
    For j = 1 To 8
    Set myrange = Range(Cells(2, j), Cells(6, j))
    Sheets("图片").Select
    ActiveSheet.Shapes.Range(Array("Picture " & i)).Select
    Selection.Copy
    Sheets("首末检一页纸").Select
    myrange.Select
    Selection.Value = 1
    ActiveSheet.Paste
    Next j
    Next i
End Sub


Sub 宏4()
'
' 宏4 宏
'
    Dim i As Long, j As Long, k As Long
    For k = 1 To 6
    For j = 1 To 8
    For i = 2 To Sheet2.Range("C1").Value * 2 Step 2
    Sheets("图片").Select
    ActiveSheet.Shapes.Range(Array("Picture " & i)).Select
    Selection.Copy
    Sheets("首末检一页纸").Select
    Cells(k, j).Select
    ActiveSheet.Paste
    Next i
    Next j
    Next k
End Sub


多次调试不行,请求大师帮助!

IMG_1680533538322.jpeg
IMG_1680533547619.jpeg

图片自动多行多列排列.zip

71.77 KB, 下载次数: 9

TA的精华主题

TA的得分主题

发表于 2023-4-4 08:02 | 显示全部楼层
https://club.excelhome.net/threa ... tml?_dsign=15791c27
楼主 看看这个链接是否有帮助吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-4 11:40 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
liulang0808 发表于 2023-4-4 08:02
https://club.excelhome.net/thread-1441877-1-1.html?_dsign=15791c27
楼主 看看这个链接是否有帮助吧

你这个我已运用到我上传的附件了,就是因它只是一个链接图片,换一台电脑打开,链接失效,图片没有转换成本地图片

TA的精华主题

TA的得分主题

发表于 2023-4-4 14:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
gateun 发表于 2023-4-4 11:40
你这个我已运用到我上传的附件了,就是因它只是一个链接图片,换一台电脑打开,链接失效,图片没有转换成 ...

还有另外一种插入图片方式,链接里也有,可以测试看看

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-4 16:53 来自手机 | 显示全部楼层
liulang0808 发表于 2023-4-4 14:10
还有另外一种插入图片方式,链接里也有,可以测试看看

链接上另一种没找到,直接上附近可以吗,谢谢!

TA的精华主题

TA的得分主题

发表于 2023-4-4 16:54 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-4 20:08 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
liulang0808 发表于 2023-4-4 16:54
看看这个是否可行吧

你的原附件可以,插图图片改了,你的图片不会变,我另存一份后,插图变了,自动刷新,是链接图片,excel文件大小只有30K,你的是本地图片148K
IMG_1680610094305.jpeg

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-6 20:40 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
gateun 发表于 2023-4-4 20:08
你的原附件可以,插图图片改了,你的图片不会变,我另存一份后,插图变了,自动刷新,是链接图片,excel ...

worksheet.Shapes.AddPicture,非引用插入这个怎么用
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-9-29 08:15 , Processed in 0.043750 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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