首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Activesheet.Shapes.AddPicture

Activesheet.Shapes.AddPicture
EN

Stack Overflow用户
提问于 2018-08-19 21:44:20
回答 2查看 7.8K关注 0票数 1

请容忍我,我是个新手,我正在尝试在一个excel文件中嵌入一个图像,但是当我运行这段代码的时候,它总是在我身上乱丢东西。我一张一张地找了一遍又一遍都找不到答案。

代码语言:javascript
复制
'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
EN

回答 2

Stack Overflow用户

发布于 2018-08-19 22:33:14

这段代码已经过测试,可以正常工作:

代码语言:javascript
复制
'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
票数 1
EN

Stack Overflow用户

发布于 2020-03-09 20:28:37

尝尝这个

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51918280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档