excel的VBA插图源代码,解决2010版后插图源路径破坏图片不影响问题

1 背境:

原来使用ActiveSheet.Pictures.Insert(temp).Select方法,对2007版本及以前没有路径也是可以的,可是到了2010版后,这个函数是存储的路径了。

2 解决方法:
Sheet1.Shapes.AddPicture 方法兼容所有版本,可以把图片准确插入指定的位置。

3 示例:按照某一列数据生成图片文件路径,然后把图片插入指定的位置。

Sub Macro1()
   Dim SrcRange As Range, SrcSheet As Worksheet
   Dim i As Integer, count As Integer, picLeft As Integer, picTop As Integer, picWidth As Integer, picHeight As Integer
  
   Set SrcSheet = ActiveWorkbook.Sheets("sheet1")
    i = Worksheets("sheet1").Range("B1").CurrentRegion.Rows.count
    For count = 2 To i
    '图片要插在哪一列
      picRange = "D" + Trim(Str(count)) + ":D" + Trim(Str(count))
       picLeft = Range(picRange).Left + 10
       picTop = Range(picRange).Top + 10
       picWidth = Range(picRange).Width - 20
       picHeight = Range(picRange).Height - 20
      '以哪一列的值做为图片名
       fileRange = Trim(Range(Cells(count, 2), Cells(count, 2)).Value)
       picPath = "P:\" + fileRange + ".jpg"
      If Dir(picPath) <> "" Then
          SrcSheet.Shapes.AddPicture picPath, True, True, picLeft, picTop, picWidth, picHeight
      End If
     Next
End Sub


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值