2017-08-10 55 views
0

我在工作表上有多个公司徽标,我试图选择并插入Word文档,因为工作簿是共享的,并且我不想引用驱动器或集中的位置(我已经在下面注释过,并且工作正常)。我不知道如何将图片引用为字符串?使用工作簿中的图片/形状替换文件位置。有任何想法吗?从多个形状对象中选择并插入Word vba

Dim CompanyLogo As String 
Dim Pic As Shape 
Dim shp As Object 

On Error GoTo ERRHANDLER 
INSHEADERLOGO = True 


'Select from multiple logos based on user selection 
'CompanyLogo = "C:\Users\Me\Dropbox\Pics\My Logo.jpg" 
TWB.Activate 
IWS.Activate 
For Each Pic In ActiveSheet.Shapes 
    If Pic.Type = msoPicture Then 
     If Pic.Name = WD.PicName Then 
      Debug.Print Pic.ID 
      Debug.Print Pic.Name ' neither worked 
      CompanyLogo = Pic.Name 
      Set shp = DOC.sections.item(1).headers(1).Shapes.AddPicture(CompanyLogo) 
     End If 
    End If 
Next Pic 

回答

0

不知道你的意思是把pic作为一个字符串引用,但这里是我刚刚尝试过的,它给了我所有你想要的信息。希望这会有所帮助:

Sub PicThing() 

    Dim oPic As Shape 
    Dim oWS As Worksheet: Set oWS = ThisWorkbook.Worksheets(1) 

    For Each oPic In oWS.Shapes 
     MsgBox "Type: " & oPic.Type & vbCrLf & "Name: " & oPic.Name & vbCrLf & "ID: " & oPic.ID 
    Next 

End Sub 
+0

谢谢扎克。我所追求的是如何拍摄Excel工作表中的图片并将其插入到我正在创建的Word文档的标题中。如果我从我的硬盘引用图片,我可以使它工作,但由于没有我知道的文件路径(因此字符串),所以我无法引用Excel表格中的图片。我想重述一下我的问题。如何在Excel中选择图片/形状,然后将其添加到Word中的标题中? – Grackel