打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA批量插入图片

       一大早又有人妄想Sir做善事了,做好事不是不可以,话至少要说得好听。要人家做好事,话还说得不好听,不善做人做事,Sir理你才是傻。

        需求:衣服的不同型号在工作表里逐行排列,衣服图片放在以其相应型号命名的文件夹中,通过VBA批量插入到同一行,每个型号的衣服图片数量不定,自左向右同行排列。

        工作簿和文件夹存放如下:

        

        

具体代码如下:



实现效果:


Public Sub InsertPictures()

    Application.ScreenUpdating = False

    Application.DisplayAlerts = False

    

    Dim Wb As Workbook, Sht As Worksheet

    Dim Rng As Range

    Const HEAD_ROW As Long = 1 '标题行数

    Const START_COLUMN As Long = 3 '无关列数

    Dim EndRow As Long

    Dim FolderPath As String, FileName As String

    Dim FilePath As String

    Dim Shp As Shape

    Dim iRow As Long, iCol As Long


    Dim StartTime, UsedTime As Variant

    StartTime = VBA.Timer '保存开始时间


    Set Wb = Application.ThisWorkbook '设置工作簿

    Set Sht = Wb.Worksheets('Sheet1') '设置工作表

    

    For Each Shp In Sht.Shapes

        Shp.Delete '预先清除所有图形

    Next Shp

    

    With Sht

        EndRow = .Cells(.Cells.Rows.Count, 1).End(xlUp).Row

        

        For iRow = HEAD_ROW 1 To EndRow '循环每个编号

        

            iCol = START_COLUMN '起始列

            FolderPath = Wb.Path & '\' & .Cells(iRow, 1).Text & '\' '文件夹路径

            

            FileName = Dir(FolderPath & '*.jpg*') '开始遍历文件夹

            Do While FileName <> ''

               FilePath = FolderPath & FileName '文件路径

               iCol = iCol 1 '调整列号

               Set Rng = .Cells(iRow, iCol) '输出单元格

               Set Shp = .Shapes.AddPicture(FilePath, msoFalse, msoCTrue, _

                                                   Rng.Left, Rng.Top, Rng.Width, Rng.Height) '插入图片

                FileName = Dir '下一个文件

            Loop

        Next iRow

        

    End With

    

    UsedTime = VBA.Timer - StartTime

    Debug.Print '本次耗时:' & Format(UsedTime, '0.000秒')

    

    Set Wb = Nothing

    Set Sht = Nothing

    Set Shp = Nothing

    Set Rng = Nothing


    Application.ScreenUpdating = True

    Application.DisplayAlerts = True

End Sub


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel | VBA——合并工作簿与合并工作表
200个文件6秒,Excel文件汇总方法大全(含Python),源码全部分享!
Excel | VBA轻松实现跨多工作表查询数据
Excel VBA 7.79如何快速的将其他文件中的图片复制过来?我们要高效的做事
自动输入
VB 给Excel中的checkbox 所在单元格赋值
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服