找回密码
 加入
搜索
查看: 3391|回复: 11

[系统综合] 【已解决】求教WORD如何批量按顺序添加图片到指定页?

  [复制链接]
发表于 2016-12-13 16:45:39 | 显示全部楼层 |阅读模式
本帖最后由 zghwelcome 于 2016-12-13 20:28 编辑

@kevinch

请教K大个word的问题,谢谢!
当前目录有 1.jpg 2.jpg 3.jpg ... 10.jpg  10张图片,
请问如何建立一个新的word文档,把图片按顺序插入到 word的 1-10页,并且在每个图片后面加入一段文字,如下:
第一页内容:
[1.jpg]
这是图片1

第2页内容:
[2.jpg]
这是图片2

...

第10页内容:
[10.jpg]
这是图片10

需求效果示例:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-12-13 20:03:47 | 显示全部楼层
$word=ObjCreate("word.application")
$word.visible=True
$doc=$word.documents.add
;$doc.saveas(@ScriptDir&"\test.doc")
With $doc.application.selection
        For $n=1 To 10
                $fn=@ScriptDir&""&$n&".jpg"
                If FileExists($fn) Then
                        .inlineshapes.addpicture($fn,false,true)
                        .endkey(6)
                        .typeparagrah
                        .typetext("这是第"&$n&"张图片"&@CRLF)
                        .insertbreak(0)
                EndIf
        Next
EndWith
测试代码,楼主试一下
发表于 2016-12-13 20:08:36 | 显示全部楼层
$word=ObjCreate("word.application") ;创建word进程
$word.visible=True  ;进程界面可见
$doc=$word.documents.add  ;添加一个新文档
;$doc.saveas(@ScriptDir&"\test.doc") ;保存文档
With $doc.application.selection
        For $n=1 To 10
                $fn=@ScriptDir&""&$n&".jpg"
                If FileExists($fn) Then
                        .inlineshapes.addpicture($fn,false,true) ;插入图片,第二个参数是指是否插入链接,第三个参数是是否同文档一同保存
                        .endkey(6) ;跳到文档最后
                        .typeparagrah ;添加一个回车换行符,这句也可以取消,下一句代码前增加一个@crlf即可
                        .typetext("这是第"&$n&"张图片"&@CRLF) ;在当前光标位置录入文字
                        .insertbreak(0) ;插入一个分页符
                EndIf
        Next
EndWith
注释一下,方便理解

评分

参与人数 1金钱 +40 收起 理由
zghwelcome + 40 谢谢K大无微不至的帮助,并给出了详细注释, ...

查看全部评分

 楼主| 发表于 2016-12-13 20:25:40 | 显示全部楼层
回复 3# kevinch


    谢谢K大的帮助!
发表于 2016-12-13 20:26:54 | 显示全部楼层
回复 4# zghwelcome

老話一句   kevinch  是 VBA 的權威 呵呵
 楼主| 发表于 2016-12-13 20:48:56 | 显示全部楼层
回复 5# kk_lee69


    是啊,崇拜了
 楼主| 发表于 2016-12-13 20:57:11 | 显示全部楼层
回复 3# kevinch


    K大,再请教一个问题, 之前建立的 10页文档,能否实现1-10页中任意取一页的内容到粘贴板呢?就是包括图片和文字信息到粘贴板
我在第一页用宏录制的如下,不知道这个页数是怎么选的啊
Sub Macro1()
    Selection.MoveUp Unit:=wdLine, Count:=4, Extend:=wdExtend
    Selection.Copy
End Sub
发表于 2016-12-13 21:52:58 | 显示全部楼层
以复制第二页为例
with $doc.application.selection
  .goto(1,1,2) ;跳到第二页
  $start=.range.start  ;记住第二页的起始位置
  .goto(1,1,3) ;跳到第三页
  $doc.range($start,.range.start-1).copy  ;根据第二页的起始位置及第三页的起始位置定位第二页内容进行复制
end with
以上代码,供大家参考

评分

参与人数 1金钱 +40 收起 理由
zghwelcome + 40 谢谢K大!敬仰之情有如滔滔江水,一发不可收 ...

查看全部评分

发表于 2016-12-14 10:07:29 | 显示全部楼层
请问 K大,怎么让插入的图片和文字都居中显示呢?
发表于 2016-12-14 19:49:12 | 显示全部楼层
回复 9# macran
inlineshapes.addpicture和typetext后面加一句
.paragraphformat.alignment=1  ;0左对齐,1居中,2右对齐
发表于 2016-12-15 17:36:40 | 显示全部楼层
谢谢K大,
开始我按照你说的在插入以后添加
.paragraphformat.alignment=1
发现第一页不能居中,后面页的可以居中。
后来我干脆把 .paragraphformat.alignment=1 放在插入图片和内容之前。问题解决了。
发表于 2018-12-24 13:20:58 | 显示全部楼层
谢谢,受教了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-24 22:16 , Processed in 0.081181 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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