首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有一种方法可以使用VBA插入多个图像,并通过对话框按选择顺序插入这些图像?

是否有一种方法可以使用VBA插入多个图像,并通过对话框按选择顺序插入这些图像?
EN

Stack Overflow用户
提问于 2019-05-13 22:24:42
回答 1查看 114关注 0票数 1

我正在创建包含大量图像(50+图像)的多个报告。我需要以特定的顺序插入它们。我有一个正在运行的脚本,它打开一个对话框,我可以选择我想要的照片,但当我按下OK时,它会按字母顺序插入图像。我希望按照我从对话框中选择它们的顺序插入它们。

我尝试在VBA中查找与插入方法相关的方法。没什么?

代码语言:javascript
复制
Sub InsertSelectedPixs()
Dim fd As FileDialog
Dim picPath As String
Dim fnd As Variant
Dim rep As Variant

Set fd = Application.FileDialog(msoFileDialogFilePicker)

Dim vrtSelectedItem As Variant

With fd
.InitialFileName = "*"
.AllowMultiSelect = True
.Filters.Clear
.Filters.Add "Images", "*.png; *.jpg; *.jpeg; *.tif"

If .Show = -1 Then

For Each vrtSelectedItem In .SelectedItems
Set MyPic = ActiveDocument.InlineShapes.AddPicture(vrtSelectedItem)
picName = Right(vrtSelectedItem, Len(vrtSelectedItem) - InStrRev(vrtSelectedItem, "\"))

MyPic.Select
MyPic.LockAspectRatio = msoTrue
MyPic.Width = CentimetersToPoints(7.25)
Selection.MoveDown wdLine
Selection.TypeText Chr(11)
Selection.InsertCaption Label:="Figure", Title:=". " & picName, Position:=wdCaptionPositionBelow
Selection.Collapse wdCollapseEnd
Selection.TypeText Chr(10)
Next vrtSelectedItem

Else
End If
End With

Set fd = Nothing

With ActiveDocument.Content.Find
.Execute FindText:=".jpg", ReplaceWith:="", Format:=True, Replace:=wdReplaceAll
End With

ActiveDocument.Range(0, 0).Select
Selection.WholeStory
Dim oRange As Word.Range

If ActiveDocument.Range.Tables.Count <> 0 Then Exit Sub

Set oRange = ActiveDocument.Range

oRange.ConvertToTable Separator:=wdSeparateByParagraphs, Format:=wdTableFormatGrid1, NumColumns:=2

Set oRange = Nothing

End Sub

在选择屏幕(文件对话框)期间,图像按字母顺序而不是所选顺序导入到Word文档中

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-13 22:45:09

这里的问题是,FileDialog文件选取器总是会返回一个collection of selected items,该are按照它们在FileDialog中出现的顺序进行排序(例如,按文件名的字母顺序)。它没有一种方法来保留用户为获得最终选择列表而采取的特定操作。

为了解决这个问题,您需要构建自己的组合框函数,该函数在用户每次从列表中选择一个项目时将项目添加到集合中。这将保留用户选择的顺序,并使您能够执行所需的操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56114403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档