前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel批量插图小工具

Excel批量插图小工具

作者头像
诡途
发布2022-05-09 18:59:07
5730
发布2022-05-09 18:59:07
举报
文章被收录于专栏:诡途的python路诡途的python路

问题描述:根据商品货号在Excel里进行图片展示 多文件批量插图 本程序下载地址:https://download.csdn.net/download/qq_35866846/12170343 有下载使用不清楚的可以后台留言 插入后效果图:

执行界面:

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
Sub 批量插图()
    Dim MyFileName, MyPath As String
    Dim MyBook As Workbook
    Dim count As Integer
    Dim pw As String
    
    Dim address As String
    Dim c As Range

    Dim cellcolumn, piccolumn As Integer
    
    On Error Resume Next '容错处理
    
    address = Cells(1, 2).Value  '图片文件夹所在的位置,根据图片位置修改

    cellcolumn = Cells(2, 2).Value '设置款号所在列,根据自己实际情况修改
    
    piccolumn = Cells(3, 2).Value '设置插入图片所在第几列,根据自己实际情况修改

    count = 0
    
    MyPath0 = Cells(4, 2).Value
    
    For Each c In Range("b5:b7"):  '循环读取子文件夹的文件夹名称
        MyPath = MyPath0 & "\" & c.Value  '拼接文件所在路径
        MyFileName = Dir(MyPath & "\*.xlsx")'索引查找子文件夹下的xlsx文件
        Application.ScreenUpdating = False'关闭屏幕更新,提升速度
        Application.DisplayAlerts = False
        Do Until MyFileName = ""
            Workbooks.Open MyPath & "\" & MyFileName'打开文件循环读取文件
            Set MyBook = ActiveWorkbook
            
            For Each sht In MyBook.Sheets
                sht.DrawingObjects.Delete'循环sheet删除原先表内插入的图片
            Next
            

            For j = 2 To MyBook.Worksheets.count   '循环sheet写入

                MyBook.Worksheets(j).Activate

                For I = 2 To Range("A65536").End(xlUp).Row  '数字2是设置开始填充图片的行号是第二行,根据实际情况修改

                    Cells(I, piccolumn).Select
                  
                    ActiveSheet.Shapes.AddShape(msoShapeRectangle, (Cells(I, piccolumn).Left + 2.5), (Cells(I, piccolumn).Top + 2), (Cells(I, piccolumn).Width - 5), (Cells(I, piccolumn).Height - 4)).Fill.UserPicture address & "\" & Cells(I, cellcolumn).Text & ".jpg" '填充图片 '图片格式必须为*.jpg格式,如果为其他格式,在这里更改图片格式

                    Selection.ShapeRange.LockAspectRatio = msoTrue'固定图片长宽比例不受影响
        
                    Selection.ShapeRange.Rotation = 0#  '设置图片旋转0度,即禁止图片旋转
        
                    Selection.Placement = xlMoveAndSize '图片的大小和位置随单元格的变化而变化
        
                    Selection.PrintObject = True

                Next I

            Next j
            MyBook.Save  '保存工作簿
            MyBook.Close True'关闭工作簿
            MyFileName = Dir '循环读取下一个文件
            count = count + 1 '计数
         Loop
            Application.ScreenUpdating = True '还原屏幕更新设置
            Application.DisplayAlerts = True
    Next
    MsgBox (count & " 个文件全部插图完成") '插图完成,打印提示
End Sub
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档