通过Excel在MS Word书签中插入多个图像

时间:2017-10-10 06:31:51

标签: excel vba ms-word

我希望使用Excel将图像插入到MS Word文档(.docx)中的书签中。我偶然发现了一个几乎完美的Word VBA解决方法,除了它当然是一个位于Word中的代码(我只是将它保存在全局模板中)。我需要它在Excel中的原因是因为我无法将宏保存在.docx文件中---我无法将其保存为启用宏的文档,因为它会破坏现有文件Excel中的VBA(另一个人做了:)。我确实已经用尽所有努力谷歌搜索,但没有确切的解决方案。作为参考,这是我正在谈论的'修改'代码。我在vbaexpress.com

中从用户fumei复制了它
xAxis: {
    type: 'datetime', 
    ordinal: false,
    startOnTick: true,
    endOnTick: true,
    tickInterval: 3600000,
    dateTimeLabelFormats: {
      day: '<b>%b %e</b>'
    }
  }

我希望得到任何帮助:)

更新

向Imran致敬:)你的代码是一个很好的帮助,但我似乎无法为多个图像工作,...我甚至不能尝试所有的事情,但所有他们将新图像粘贴到同一个书签上。加上失败的Office 365增加了进退两难的局面。我将在稍后重新安装它,并将在明天发表评论:(我出于我的智慧并尝试将循环功能合并到我发布的原始代码中。以下代码是我尝试失败的原因:

Sub FillABookmark(strBM As String, strText As String)
    Dim j As Long
    With ActiveDocument
        .Bookmarks(strBM).Range _
        .InlineShapes _
        .AddPicture FileName:=strText
        j = ActiveDocument.InlineShapes.Count
        .InlineShapes(j).Select
        .Bookmarks.Add strBM, Range:=Selection.Range
    End With
End Sub


Sub InsertScreenshots()
    Call FillABookmark("Image_1", "C:\Users\Public\Documents\Image1.png")
    Call FillABookmark("Image_2", "C:\Users\Public\Documents\Image_2.png")
    Call FillABookmark("Image_3", "C:\Users\Public\Documents\Image_3.png")


End Sub

1 个答案:

答案 0 :(得分:1)

如果只是想要在word文档中添加的图像,请使用此

  Sub FillABookmark(bookmarkname As String, imagepath As String)
    Dim objWord As Object
    Dim objDoc As Object

    On Error Resume Next
    Set objWord = GetObject(, "Word.Application")
    If objWord Is Nothing Then
        Set objWord = CreateObject("Word.Application")
        objWord.Visible = True
        objWord.Documents.Open "D:\imran.docx"
    End If
    Set objDoc = objWord.activedocument

    With objDoc
        .Bookmarks(bookmarkname).Select
        .Shapes.AddPicture Filename:=imagepath
    End With
    With objDoc
        .Bookmarks(bookmarkname).Select
        .Shapes.AddPicture Filename:=imagepath
    End With
    With objDoc
        .Bookmarks(bookmarkname).Select
        .Shapes.AddPicture Filename:=imagepath
    End With

End Sub

Sub InsertScreenshots()
    Call FillABookmark("test", "C:\Users\Public\Documents\1.jpg")
End Sub