'-------------------------------------------
'获取某文件夹下的所有Excel文件
'-------------------------------------------
Sub getExcelFile(sFolderPath As String)
On Error Resume Next
Dim f As String
Dim file() As String
Dim x
k = 1
ReDim file(1)
file(1) = sFolderPath &""
End Sub
'-------------------------------------------
'获取某文件夹下的所有文件和子扰者好目录下的文件
'-------------------------------------------
Sub getAllFile(sFolderPath As String)
'Columns(1).Delete
On Error Resume Next
Dim f As String
Dim file() As String
Dim i, k, x
x = 1
i = 1
k = 1
ReDim file(1 To i)
file(1) = sFolderPath &""
'-- 获得所有子目录
Do Until i >k
f = Dir(file(i), vbDirectory)
Do Until f = ""
If InStr(f, ".") = 0 Then
k = k + 1
ReDim Preserve file(1 To k)
file(k) = file(i) &f &""
End If
f = Dir
Loop
i = i + 1
Loop
'-- 获得所有子目录下的所有文件
For i = 1 To k
f = Dir(file(i) &" . ")'通嫌塌配符 . 表示所有文件,*.xlsx Excel文件
Do Until f = ""
'Range("a" &x) = f
Range("a" &x).Hyperlinks.Add Anchor:=Range("缓铅a" &x), Address:=file(i) &f, TextToDisplay:=f
x = x + 1
f = Dir
Loop
Next
End Sub
还没有解决吗?那我就来试一下。
(1)首先,楼主先新建一个excel,名称楼主自己写,怎样都行,然后将其打开。
(2)打开后按住Alt再按F11,这样就会打开vba代码编辑器
(3)点菜单栏上的“插入”,选择“模块”,这样在左下角就会出现一个“模块1”
(4)双击“模块1”,右边就会出现“模块1”的编辑界面,将以下代码复制,并粘贴到这个界面中,按F5运行。
Sub 遍历文件夹()'Columns(1).Delete
On Error Resume Next
Dim f As String
Dim file() As String
Dim i, k, x
x = 1
i = 1: k = 1
ReDim file(1 To i)
file(1) = InputBox("请输入要查找的文件夹:") & "\"
Do Until i > k
f = Dir(file(i), vbDirectory)
Do Until f = ""
If InStr(f, ".") = 0 Then
k = k + 1
ReDim Preserve file(1 To k)
file(k) = file(i) & f & "\"
End If
f = Dir
Loop
i = 袭答i + 1
Loop
For i = 1 To k
f = Dir(file(i) & "*.*")
Do Until f = ""
'Range("a" & x) = f
Range("a" & x).Hyperlinks.Add Anchor:=Range("腔世a" & x), Address:= _
file(i) & f, TextToDisplay:=f
x = x + 1
f = Dir
Loop
Next
End Sub
(5)在出现的对话框中,将你要查找的文件的地址复制到对话框中,按确定,就完成了。
注:这伍禅肢里用的是excel2007版,如果楼主用的是其他版本,有可能存在代码不兼容问题。
图1.打开vba编辑器。
图2.运行代码。
图3.结果。
一、所需DOS命令
dir [drive:][path] /b >[drive:][path]filename
二、应用实例
如下图,在D盘中,有一个名称为“TQIPC”的文件夹,这个文件夹里面,存放了很多的照片!
现在,我们要做的就是,如何让这些照片的名称,自动显示在Excel或记事本里面!
执行菜单 *** 作“开始”→“运行”,d出大中运行对话框,在里面输入 CMD 并按“确定”键,这个时候,会打开如下图的MS-DOS窗口!
之后,如下图一样,输入DOS命令即可!
上述的命令输入好之后,就按下回车键,命令就执行了,以上生成的是XLS文件;如果您想生成记事本TXT文件,那么,就输入下图的dos命令即可!
就这样,非常简单,文件名的列表文件,就形成了!如下图!
通过dos命令的 *** 作,我们就得到了如上图的两个文件了。
下面我们打开temp.xls文件看看,如下图!
看到了没有,文件夹中的照片名称,自动就显示在excel表格中了!
该dos命令非常强大,用好dos命令,可省去我们很多的功夫。
三、知识扩展
下面,再给大家一个例子,即,自动根据照片(根据人物名称),建立文件夹。
如果某个文件夹下面,您存放的是某些人物的照片,并且,每个人物的照片,都使用其名字来命名;这个时候,如何要自动根据人物的自动建立其对应的文件夹,也相当方便!
*** 作的方法是,先根据上述的方法,获取所有人物的照片的名称,生成EXCEL文件;
然后,在人物名称列前面,插入一列,并输入MD;
接下来,使用查找替换功能,将excel文件中的人物名称,去掉扩展名(只保留名字);
最后,将excel的内容,复制粘贴到记事本中,现在,我们就得到了形如:“MD 人物名称” 这样的命令格式了。(md 文件名称,该命令格式,是使用来建立文件夹的命令,上述的宴仿信 *** 作,都是为此做准备!)
将记事本文件保存成为形如:124.bat格式的文件,晌轮最后,双击此文件,文件夹名称就自动建立好了!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)