Excel Activesheet.Shapes.AddPicture
请容忍我,我是新的代码,我正试图嵌入一个excel文件中的图像,但它不断拉屎我当我运行此代码。我查了一张又一张表格,找不到答案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")
'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报告时,它将嵌入图像而不是链接图像。