帮忙写一个EXCEL的VBA代码吧

帮忙写一个EXCEL的VBA代码吧,我要在一张EXCEL表中根据身份证号在某个文件夹中查找该身份证号码命名的文件,如果找到,则返回该文件所在文件夹的文件名.如在excel... 帮忙写一个EXCEL的VBA代码吧,我要在一张EXCEL表中根据身份证号在某个文件夹中查找该身份证号码命名的文件,如果找到,则返回该文件所在文件夹的文件名.如在excel表A1中是身份证号码,则在B1中显示文件夹名称。 展开
 我来答
千顷云
2012-08-10 · TA获得超过430个赞
知道小有建树答主
回答量:209
采纳率:0%
帮助的人:168万
展开全部

先上图,看看是你想要的结果么

 

你写的内容有点歧义,我理解成有好多以身份证命名的文件在不同的子文件夹下面,你想列出他们分别都在在哪个文件夹里是吧。

 

给你代码 

Sub aaa()

Dim k, p, q, i, m As Integer

Dim path_str(1 To 100), ext(1 To 50), path_0 As String '如果大于100个子文件夹  请修改path_str内的参数

'定义总文件夹

path_0 = "d:\身份\"

'定义文件拓展名,如果有其他类型的文件,自己再接着添加 ext(*) = "*" 如果没有添加该类型文件,就找不到了。注意前面要有那个点

ext(1) = ".xls"

ext(2) = ".xlsx"

ext(3) = ".doc"

ext(4) = ".txt"

For p = 1 To 50

If ext(p) = "" Then Exit For

Next

Myfile = Dir(path_0, vbDirectory)

Do While Myfile <> ""

    If GetAttr(path_0 & Myfile) = vbDirectory Then

        k = k + 1

        path_str(k) = Myfile

    End If

    Myfile = Dir

Loop

For i = 1 To Range("a60000").End(xlUp).Row ‘to后面可以自动判断你这个表的最后一行。如果你想手工改动要判断几行,可以自己把Range("a60000").End(xlUp).Row 替换成一个数字

    For m = 1 To k

        path_1 = path_0 & path_str(m) & "\"

        For q = 1 To p - 1

            If CreateObject("Scripting.FileSystemObject").FileExists(path_1 & Cells(i, 1).Value & ext(q)) Then Cells(i, 2).Value = path_str(m)

        Next

    Next

Next

   

   

End Sub

 

 

 

 

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式