VBA在Excel工作表中批量插入、删除图片的应用

    工作表的插入员工证件照

        Excel工作表中批量插入图片的工作,你是否遇到过?如工作表的A列是员工姓名,B列或其他列插入员工证件照。  

VBA在Excel工作表中批量插入、删除图片的应用 
        如何操作?一张张插入,照片大小可能不一致,还要手动调整大小,工作量太大;网上有批量插入照片的视频讲解,但前提是“姓名”列的顺序还必须和照片排列顺序完全一致。这就需要把“姓名”按照片排列的顺序重新排列,或将照片重命名成“姓名”的顺序。  
不需要这么麻烦,VBA代码能快速帮你解决问题。只要照片的名称和“姓名”一致,无论照片和“姓名”如何排序,插入的图片都能快速匹配,且图片的长、宽完全适应Excel工作表的行高、列宽,不会出现插入的图片大小一不致的现象。  
        本期以水浒人物为例。随意在网上搜了几张水浒人物的漫画,不知原出处,如有侵权,请联系删除。  
        Excel工作表、人物图片及插入图片后效果截图:

图片图片

图片

 直接上代码:  

Sub insertPic()

  InsertPictures

End Sub

          

Function InsertPictures()   '批量插入图片

  Application.DisplayAlerts = False

  Dim workBookA As Workbook

  Dim workSheetA As Worksheet

  Dim Rng As Range

  Dim RowsCount, i As Integer

  Dim Shp As Shape

  Dim folderPath, PicName, PicPathName As String

  Set workBookA = Application.ThisWorkbook

  Set workSheetA = workBookA.Worksheets("批量插入图片")    

  RowsCount = Sheets("批量插入图片").Cells(Rows.Count, 1).End(xlUp).Row  '计算A例人物姓名数量

  folderPath = ThisWorkbook.Path   '获取路径,可直接指定路径,本例图片保存在活动工作表所在文件夹下“水浒人物图片”文件夹下

  With workSheetA

   For i = 2 To RowsCount

     PicName = Sheets("批量插入图片").Cells(i, 1).Value & ".jpg"   '图片名称为“姓名”列对应的图片名

     PicPathName = folderPath & "\水浒人物图片\" & PicName   '图片的全路径+图片名称

     Set Rng = Sheets("批量插入图片").Cells(i, 2)  '图片插到“姓名”对应的B例

     Set Shp = Sheets("批量插入图片").Shapes.AddPicture(PicPathName, msoFalse, msoCTrue, Rng.Left, Rng.Top, Rng.Width, Rng.Height)  '插入图片,插入图片前提前设置单元格行高、列宽

   Next

  End With

  Set workBookA = Nothing

  Set workSheetA = Nothing

  Set Shp = Nothing

  Set Rng = Nothing

  Application.DisplayAlerts = True

End Function

代码截图:

图片

Sub DelPic()

  DelPictures

End Sub

          

Function DelPictures()       '批量删除图片

  Application.DisplayAlerts = False

  Dim workBookA As Workbook

  Dim workSheetA As Worksheet    

  Dim Shp As Shape

  Set workBookA = Application.ThisWorkbook

  Set workSheetA = workBookA.Worksheets("批量插入图片")

  With workSheetA

    For Each Shp In .Shapes

      Shp.Delete        '工作表内所有图片全部删除

    Next Shp

  End With

End Function

代码截图:

图片

    

  • 32
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值