分享

Excel-VBA将同路径图片全部导入工作表

 L罗乐 2017-12-16


应用场景

一键导入图片 Pictures.Insert方法


知识要点

1:While...Wend 语句  只要指定的条件为 True,则会重复执行一系列的语句

2:Pictures.Insert方法,插入图片,且在插入时可以自动选择该图片

3:Dir 函数 返回一个 String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配

4:在第一次调用 Dir 函数时,必须指定 pathname,否则会产生错误 再一次调用 Dir,且不要使用参数。如果已没有合乎条件的文件,则 Dir 会返回一个零长度字符串 ('')

5:一旦返回值为零长度字符串,并要再次调用 Dir 时,就必须指定 pathname,否则会产生错误


Sub 批量导入同路径下所有图片()

    Dim Str As String, n As Long, Paths, Arr, i

    On Error GoTo err

    Paths = ActiveWorkbook.Path

    If Len(Paths) = 0 Then MsgBox '请保存工作薄', 64, '提示': Exit Sub

    Application.ScreenUpdating = False  '关闭屏幕更新,提示速度

    Arr = Array('\*.jpg', '\*.jpeg', '\*.bmp', '\*.png', '\*.gif')

    '对5种格式的图片有效

    For i = 0 To 4

        Str = Dir(Paths & Arr(i)) '开始查找文件,查找格式从数组arr中逐一获取

        While Len(Str) > 0

            n = n 1

            ActiveSheet.Pictures.Insert(Paths & IIf(Right(Paths, 1) = '\', '', '\') & Str).Select  '插入图片

            Str = Dir()  '查找下一个

        Wend

    Next

    Application.ScreenUpdating = True  '恢复屏幕更新

    MsgBox '已插入' & n & '个图片!', 64, '提示'

err:

End Sub


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约