【问题标题】:VBA for Word: Trying to Insert JPEG objects based on filename within word documentVBA for Word:尝试在 word 文档中根据文件名插入 JPEG 对象
【发布时间】:2014-04-24 08:16:13
【问题描述】:

我有一个 word 文档,其中包含嵌入的照片 (JPEGS) 文件名。我的目标是使用文档中列出的实际照片自动更新 word 文档。我希望编写一个宏来搜索 word 文档中每次出现的文件名,并将实际的 JPEG 对象插入到文件名之后的 Word 文档中。我需要继续这个过程,直到在 word 文档中找到所有 JPEG 文件名。每个文件名长度为 26 个字符,它们都以“IMG”开头。作为一个新手,我被困在如何将文件名的文本复制到 VBA 变量中。

以下是word文档的示例:

2014 年 2 月 16 日星期日

9:52 PM Tom,附上之前和之后的照片。

标签:建筑 照片:IMG_0000320_2014.03.11.jpg、IMG_0000321_2014.03.11.jpg、IMG_0000322_2014.03.11.jpg

2014 年 2 月 13 日星期四

下午 4:24 汤姆,图纸已附上。请查看。

标签:预奖 照片:IMG_0000323_2014.03.11.jpg、IMG_0000324_2014.03.11.jpg、IMG_0000325_2014.03.11.jpg、IMG_0000326_2014.03.11.jpg

下面提供了我的初始编码尝试:(我尚未尝试 DO WHILE 逻辑)

Dim JPEGName As String
Selection.Find.ClearFormatting
With Selection.Find
    .Text = "IMG"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.MoveRight Unit:=wdCharacter, Count:=26, Extend:=wdExtend
JPEGName = Selection.Copy
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeParagraph

Selection.InlineShapes.AddPicture FileName:= _
    JPEGName _
    , LinkToFile:=False, SaveWithDocument:=True
Selection.TypeParagraph
End Sub

我收到一个编译错误:Selection.Copy 语句中的预期函数或变量。

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

    可能是这样的:

    Sub InsertPics()
    Const PATH_TO_PICS As String = "C:\_Stuff\Test\"
    Dim JPEGName As String
    
        Selection.Find.ClearFormatting
        With Selection.Find
            .Text = "IMG*.jpg"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchAllWordForms = False
            .MatchSoundsLike = False
            .MatchWildcards = True
        End With
    
        Do While Selection.Find.Execute()
            JPEGName = Selection.Text
            Selection.Collapse wdCollapseEnd
            Selection.TypeParagraph
            Selection.InlineShapes.AddPicture _
                 FileName:=PATH_TO_PICS & JPEGName, _
                 LinkToFile:=False, _
                 SaveWithDocument:=True
            Selection.TypeParagraph
    
        Loop
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-30
      相关资源
      最近更新 更多