前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >问与答87: 如何根据列表内容在文件夹中查找图片并复制到另一个文件夹中?

问与答87: 如何根据列表内容在文件夹中查找图片并复制到另一个文件夹中?

作者头像
fanjy
发布2020-09-25 11:33:28
2.8K0
发布2020-09-25 11:33:28
举报
文章被收录于专栏:完美Excel完美Excel

Q:如何实现根据列表内容查找文件夹中的照片,并将照片剪切或复制到另外的文件夹?如下图1所示,在列C中有一系列身份证号。

图1

在一个文件夹中(示例中为“照片库”),存放着以身份证号命名的照片,在其中查找上图1所示的工作表列C中的身份证号对应的照片并将其移动至另一文件夹中(示例中为“一班照片”),如下图2所示。

图2

如果文件夹中找不到照片,则在图1的工作表列D中标识“无”,否则标识有,结果如下图3所示,表明在文件夹“照片库”中只找到并复制了2张照片,其他照片没有找到。

图3

A:可以使用一段VBA代码实现。代码如下:

代码语言:javascript
复制
Sub CopyPic()
    '声明变量
    Dim strSourcePath As String
    Dim strDesPath As String
    Dim strFile As String
    Dim iCount As Long
    Dim strFilename() As String
    Dim lngLastRow As Long
    Dim i As Long
    Dim bln As Boolean
   
    '指定照片所在文件夹和要复制到的文件夹
    '示例假设工作簿与文件夹在同一目录下
   strSourcePath = ThisWorkbook.Path & "\照片库\"
    strDesPath= ThisWorkbook.Path & "\一班照片\"
 
    '获取文件
    strFile =Dir(strSourcePath)
   
    '获取工作表最后一行
    lngLastRow= Worksheets("Sheet1").Range("C" &Rows.Count).End(xlUp).Row
   
    '重定义动态数组
    ReDim strFilename(0 To iCount)
    If strFile<> "" Then
       strFilename(iCount) = strFile
    Else
        Exit Sub
    End If
   
    '遍历照片所在文件并将所有照片名称存储在数组中
    Do While strFile <> ""
        iCount= iCount + 1
        ReDim Preserve strFilename(0 To iCount)
        strFile= Dir
       strFilename(iCount) = strFile
    Loop
   
    '遍历工作表
    For i = 2 To lngLastRow
        bln = False
        '遍历数组
        For iCount = LBound(strFilename) To UBound(strFilename)
            '查找照片名称
            If Worksheets("Sheet1").Range("C" & i).Value =Left(strFilename(iCount), 18) Then
                '如果找到将其复制到目标文件夹
               FileCopy strSourcePath & strFilename(iCount), strDesPath &strFilename(iCount)
               bln = True
            End If
        Next iCount
        '根据照片是否找到填写列D相应单元格值
        If bln Then
           Worksheets("Sheet1").Range("D" & i).Value ="有"
        Else
           Worksheets("Sheet1").Range("D" & i).Value ="无"
        End If
    Next i
End Sub

代码先将照片所在的文件夹中的所有照片名称存储在数组中,然后遍历工作表单元格,并将单元格中的值与数组中的值相比较,如果相同,则表明找到了照片,将其复制到指定的文件夹,并根据是否找到照片在相应的单元格中输入“有”“无”以提示查找的情况。

可以根据实际情况,修改代码中照片所在文件夹的路径和指定要复制的文件夹的路径,也可以将路径直接放置在工作表单元格中,并使用代码调用,这样更灵活。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

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

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

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