Excel Activesheet.Shapes.AddPicture

Excel Activesheet.Shapes.AddPicture,excel,vba,Excel,Vba,请容忍我,我是新的代码,我正试图嵌入一个excel文件中的图像,但它不断拉屎我当我运行此代码。我查了一张又一张表格,找不到答案 'Import Image Sub GetPic() Dim fNameAndPath As String Dim img As Object ChDir ActiveWorkbook.Path fNameAndPath = Application.GetOpenFilename(Title:="Select Picture To Be Imported")

请容忍我,我是新的代码,我正试图嵌入一个excel文件中的图像,但它不断拉屎我当我运行此代码。我查了一张又一张表格,找不到答案

'Import Image
Sub GetPic()
Dim fNameAndPath As String
Dim img As Object

ChDir ActiveWorkbook.Path
fNameAndPath = Application.GetOpenFilename(Title:="Select Picture To Be Imported")

    'set img line is highlighted hovering displays a message. img = nothing

    Set img = ActiveSheet.Shapes.AddPicture(Filename:=fNameAndPath, Pathlinktofile:=msoFalse, savewithdocument:=msoCTrue, Left:=0, Top:=0, Width:=-1, Height:=-1)
    With img

       'Move and Resize Image
        img.Select
       Selection.ShapeRange.LockAspectRatio = msoFalse
       Selection.Left = ActiveSheet.Range("H10").Left
       Selection.Top = ActiveSheet.Range("H10").Top
       Selection.Width = ActiveSheet.Range("H10:O10").Width
       Selection.Height = ActiveSheet.Range("H10:O24").Height

    End With
End Sub

此代码经过测试并运行:

'Import Image
Sub GetPic()
Dim fNameAndPath As String
Dim img As Object


fNameAndPath = Application.GetOpenFilename(Title:="Select Picture To Be Imported")
    Set img = ActiveSheet.Pictures.Insert(fNameAndPath)
    With img
       'Move and Resize Image
       .ShapeRange.LockAspectRatio = msoFalse
       .Left = ActiveSheet.Range("H10").Left
       .Top = ActiveSheet.Range("H10").Top
       .Width = ActiveSheet.Range("H10:O10").Width
       .Height = ActiveSheet.Range("H10:O24").Height
    End With
End Sub
试试这个

Sub GetPic()
 Dim fNameAndPath As String
 Dim img As Excel.Shape

 ChDir ActiveWorkbook.Path
 fNameAndPath = Application.GetOpenFilename(Title:="Select Picture To Be Imported")

 Set img = ActiveSheet.Shapes.AddPicture( _
  fNameAndPath, msoFalse, msoCTrue, ActiveSheet.Range("H10").Left, _
  ActiveSheet.Range("H10").Top, ActiveSheet.Range("H10:O10").Width, _
  ActiveSheet.Range("H10:O24").Height)
  img.LockAspectRatio = msoFalse

  'Just for fun:
   img.IncrementRotation 45
End Sub

宽度:=-1??老实说,宽度和高度最初设置为1。在抓紧稻草的时候,我发现了一篇关于物体放置的帖子,并将其改为-1,希望这能解决问题,“内心深处我知道它不会”,但我还是尝试了一下……你没有说错误在哪里,但看起来你在AddPicture中的第二个参数的名称不正确。它应该是LinkToFile,而不是Pathlinktofile。顺便说一句,使用宽度:=-1将宽度设置为其默认大小。Domenic!你是个救生员!我真是太感谢你了!感谢您的回复,您所附的代码就是我目前在报告中使用的代码。我应该在标题上说得更清楚一点。我希望修改此代码,以便在要求我发送数据文件“excel文件”而不是.pdf报告时,它将嵌入图像而不是链接图像。