导航:首页 > 文字图片 > word模板vba批量插入图片

word模板vba批量插入图片

发布时间:2023-01-31 18:56:13

1. 寻找WORD VBA高手解决WORD批量插入图片程序的问题

Selection.Text = Basename(Fn) '这两句移到这里
Selection.EndKey

这两句移一下位置,其它不变。

Sub 批量插入图片()
Dim myfile As FileDialog
Set myfile = Application.FileDialog(msoFileDialogFilePicker)
With myfile
.InitialFileName = "D:\111"
If .Show = -1 Then
For Each Fn In .SelectedItems
Selection.Text = Basename(Fn) '这两句移到这里
Selection.EndKey
Set mypic = Selection.InlineShapes.AddPicture(FileName:=Fn, SaveWithDocument:=True)
'按比例调整相片尺寸
WidthNum = mypic.Width
c = 18 '在此处修改相片宽,单位厘米
mypic.Width = c * 28.35
mypic.Height = (c * 28.35 / WidthNum) * mypic.Height
If Selection.Start = ActiveDocument.Content.End - 1 Then '如光标在文末
Selection.TypeParagraph '在文末添加一空段
Else
Selection.MoveDown
End If
If Selection.Start = ActiveDocument.Content.End - 1 Then '如光标在文末
Selection.TypeParagraph '在文末添加一空段
Else
Selection.MoveDown
End If
Next Fn
Else
End If
End With
Set myfile = Nothing
End Sub
Function Basename(FullPath) '取得文件名
Dim x, y
Dim tmpstring
tmpstring = FullPath
x = Len(FullPath)
For y = x To 1 Step -1
If Mid(FullPath, y, 1) = "\" Or _
Mid(FullPath, y, 1) = ":" Or _
Mid(FullPath, y, 1) = "/" Then
tmpstring = Mid(FullPath, y + 1)
Exit For
End If
Next
Basename = Left(tmpstring, Len(tmpstring) - 4)
End Function

2. word vba 插入图片

Sub 批量插入图片()
Dim myfile As FileDialog
Set myfile = Application.FileDialog(msoFileDialogFilePicker)
With myfile
.InitialFileName = "E:\工作文件" ‘这里输入你要插入图片的目标文件夹
If .Show = -1 Then
For Each Fn In .SelectedItems
Selection.Text = Basename(Fn) '这两句移到这里
Selection.EndKey
If Selection.Start = ActiveDocument.Content.End - 1 Then '如光标在文末
Selection.TypeParagraph '在文末添加一空段
Else
Selection.MoveDown
End If
Set MyPic = Selection.InlineShapes.AddPicture(FileName:=Fn, SaveWithDocument:=True) '按比例调整相片尺寸
WidthNum = MyPic.Width
c = 6 '在此处修改相片宽,单位厘米
MyPic.Width = c * 28.35
MyPic.Height = (c * 28.35 / WidthNum) * MyPic.Height
If Selection.Start = ActiveDocument.Content.End - 1 Then '如光标在文末
Selection.TypeParagraph '在文末添加一空段
Else
Selection.MoveDown
End If
Next Fn
Else
End If
End With
Set myfile = Nothing
End Sub
Function Basename(FullPath) '取得文件名
Dim x, y
Dim tmpstring
tmpstring = FullPath
x = Len(FullPath)
For y = x To 1 Step -1
If Mid(FullPath, y, 1) = "\" Or _
Mid(FullPath, y, 1) = ":" Or _
Mid(FullPath, y, 1) = "/" Then
tmpstring = Mid(FullPath, y + 1)
Exit For
End If
Next
Basename = Left(tmpstring, Len(tmpstring) - 4)
End Function
执行此代码后,弹出的选择对话框, 全选目标文件夹下的所有图片文件之后,点击确定。然后静静的等待电脑完成处理工作,次数word会进入无响应状态。图片越多,无响应的时间越长。

3. word用vba批量导入图片文件时,怎样保留图片原有大小,而不是统一固定大小跪谢!下为代码

删掉红圈里面的

4. 如何实现Word 中批量插入图片

Sub批量添加图片()
'程序功能:批量添加图片宏
'作者Q:766110727
'日期:2017.06.07
'使用步骤1:word中ALT+11进入VBA宏界面;
'使用步骤2:将本段代码从sub到endsub,全部粘到代码框最后的空白处;
'使用步骤3:按F5执行代码。
'说明:代码按最直观的逻辑写的,也方便大家使用修改。
'OnErrorResumeNext
Dimn,图片路径1(),图片路径2(),图片路径3(),图片路径4(),图片数量最大值
DimmyTableAsTable
'###################################################################
'#######第一部分:获取每个文件夹下所有jpg图片名,写入相应数组#######
'###################################################################
n=0
图1=Dir("I: tjbt插入图片图片*.jpg")
DoWhile图1<>""
n=n+1
ReDimPreserve图片路径1(1Ton)
图片路径1(n)="I: tjbt插入图片图片"&图1
图1=Dir()
Loop
Ifn>图片数量最大值Then图片数量最大值=n
n=0
图2=Dir("I: tjbt插入图片图片2*.jpg")
DoWhile图2<>""
n=n+1
ReDimPreserve图片路径2(1Ton)
图片路径2(n)="I: tjbt插入图片图片2"&图2
图2=Dir()
Loop
Ifn>图片数量最大值Then图片数量最大值=n
n=0
图3=Dir("I: tjbt插入图片图片3*.jpg")
DoWhile图3<>""
n=n+1
ReDimPreserve图片路径3(1Ton)
图片路径3(n)="I: tjbt插入图片图片3"&图3
图3=Dir()
Loop
Ifn>图片数量最大值Then图片数量最大值=n
n=0
图4=Dir("I: tjbt插入图片图片4*.jpg")
DoWhile图4<>""
n=n+1
ReDimPreserve图片路径4(1Ton)
图片路径4(n)="I: tjbt插入图片图片4"&图4
图4=Dir()
Loop
Ifn>图片数量最大值Then图片数量最大值=n

'###################################################################
'##################第二部分:插入图片到word表格中###################
'###################################################################
'新建一个一行两列表格
SetmyTable=ActiveDocument.Tables.Add(Range:=ActiveDocument.Range(Start:=0,End:=0),NumRows:=1,NumColumns:=2)
'设定后续操作的目标表格为文档的第一个表格
SetmyTable=ActiveDocument.Tables(1)
n=0
DoWhilen<图片数量最大值
n=n+1
之前表格行数=myTable.Rows.Count
myTable.Rows.Last.Select
Selection.InsertRowsBelow4'下方插入4行
'第一行两列,图片序号12
myTable.Cell(Row:=之前表格行数+1,Column:=1).Range.InsertAfterText:="图片1"
myTable.Cell(Row:=之前表格行数+1,Column:=2).Range.InsertAfterText:="图片2"
myTable.Cell(Row:=之前表格行数+3,Column:=1).Range.InsertAfterText:="图片3"
myTable.Cell(Row:=之前表格行数+3,Column:=2).Range.InsertAfterText:="图片4"
'第二行两列,插入图片并设置图片大小
myTable.Cell(Row:=之前表格行数+2,Column:=1).Range.InlineShapes.AddPictureFileName:=_
图片路径1(n),LinkToFile:=False,SaveWithDocument:=True
myTable.Cell(Row:=之前表格行数+2,Column:=2).Range.InlineShapes.AddPictureFileName:=_
图片路径2(n),LinkToFile:=False,SaveWithDocument:=True
myTable.Cell(Row:=之前表格行数+4,Column:=1).Range.InlineShapes.AddPictureFileName:=_
图片路径3(n),LinkToFile:=False,SaveWithDocument:=True
myTable.Cell(Row:=之前表格行数+4,Column:=2).Range.InlineShapes.AddPictureFileName:=_
图片路径4(n),LinkToFile:=False,SaveWithDocument:=True
Loop

ActiveDocument.Tables(1).Rows(1).Delete'刚开始建的表格中第一行是空行,删掉

'###################################################################
'######################第三部分:图片格式处理#######################
'###################################################################
'统一设置图片长宽,美化文档。这里会卡好久时间,按需要是否添加本段代码
Forn=1ToActiveDocument.InlineShapes.Count
ActiveDocument.InlineShapes(n).Height=210'设置高度
ActiveDocument.InlineShapes(n).Width=110'设置宽度
Nextn
EndSub

5. 求助:如何通过VBA批量选中word文档里的嵌入型图片或表格

提供示例代码供参考:

SubBatEditPic()
DimShapesCountAsInteger
DimiAsInteger
ShapesCount=ActiveDocument.InlineShapes.Count
Fori=1ToShapesCount
WithActiveDocument.InlineShapes(i)
'修改图片边框
With.Borders(wdBorderTop)
.LineStyle=wdLineStyleSingle
.LineWidth=wdLineWidth050pt
EndWith
With.Borders(wdBorderBottom)
.LineStyle=wdLineStyleSingle
.LineWidth=wdLineWidth050pt
EndWith
With.Borders(wdBorderLeft)
.LineStyle=wdLineStyleSingle
.LineWidth=wdLineWidth050pt
EndWith
With.Borders(wdBorderRight)
.LineStyle=wdLineStyleSingle
.LineWidth=wdLineWidth050pt
EndWith
EndWith
Nexti
EndSub

6. 利用VBA如何将批量图片导入WORD的指定表格格式里

将excel表格中的数据批量插入到word中的操作方法:
1、单击插入----对象按钮;
2、弹出插入对话框对话框,选择由文件创建对话框,单击浏览按钮;
3、弹出浏览对话框,选择需要插入有Excel文件;
4、单击插入按钮即可。
注:
(1)若选中链接到文件,源文件修改,Word中的表格也随之改变;
(2)若选中显示为图片,则以图标的形式插入到Word,双击可以打开其源文件。

7. 在word中如何用VBA实现插入多张图片

要从两个方面考虑:
1、如何把现有文档中的图片导出?这个代码片断可以参考一下:
Set ImageStream = CreateObject("ADODB.Stream")
With ImageStream
.Type = 1
.Open
.Write ActiveDocument.InlineShapes(1).Range.EnhMetaFileBits
.SaveToFile "d:\Temp\Output.bmp"
.Close
End With
Set ImageStream = Nothing

2、如何把已经到处的图片导入到新文档中?这个函数调用可以参考一下:
ActiveDocument.InlineShapes.AddPicture

如果还是不明白的话,请补充提问。

_____
补充:
请问楼主你运行那个代码片断得到的*完整*错误信息是什么?报错的时候,系统一般会把光标移动到出错的那行代码上,你看到的是哪一行代码出错呢?
我看你贴上来的代码应该是没有什么语法上的错误,“Exit For”的确是不应该要的,但那也不是语法错误啊。

8. vba关于批量插入图片

批量插入图片代码:
sub 图片导入
dim s as shape
dim rg as range
'删除已有的图片
for each s in activesheet.shapes
if s.type <> 8 then
s.delete
end if
'导入图片
for each rg in range("B2:B10")'这里放要插入图片的单元格范围 B2:B10可以改成所需要的范围。
activesheet.shapes.addshape(msoshaperectangle,rg.left,rg.top,rg.width,rg.height).select
selection.shaperange.fill.userpicture "E:\图片"& rg.offset(0, -1) & ".jpg"'这里指定的是图片的存储路径为E盘下的图片文件夹,然后图片名称与A列的数据一致,后缀名为JPG格式。这些都可以自行更改,根据需要来定。
next rg
end sub

阅读全文

与word模板vba批量插入图片相关的资料

热点内容
第二套衣服图片 浏览:319
运输局制服衣服图片 浏览:936
镙丝烫发发型图片 浏览:673
美女露100奶头无挡的图片 浏览:917
灰白色头发图片女生 浏览:731
微信钞票图片大全 浏览:383
中澳混血儿图片女孩唯美 浏览:378
唯美手写文字图片 浏览:299
女孩露臀诱惑图片 浏览:231
棕黑衣服图片 浏览:204
男生图片怎么调色好看 浏览:749
衣服的logo图片怎样清除 浏览:338
拿话筒的女生头像图片动漫 浏览:531
火影忍者男生的内裤图片 浏览:984
如何将ppt保存为长图片 浏览:727
长莫西干发型图片 浏览:883
古板衣服图片 浏览:493
如何把一张图片分成三个部分 浏览:345
出国旅游美女风景图片 浏览:54
动漫图片大全帅气女生 浏览:492