首页 > 代码库 > 【Excel&VBA】VBA解析本地文件目录 读取文本数据

【Excel&VBA】VBA解析本地文件目录 读取文本数据

偶尔用到Excel中VBA处理一些事情,毕竟鄙人比较懒,总是喜欢把那些重复性的工作想方设法交给计算机来处理,那样才能证明自己的大脑还在运转着,总结一些VBA中读取解析本地文件目录的方法。 

 

 1  该函数是获取指定目录下所有的 文件夹 名 2 Sub readFile() 3     Path = "d:\" 4     sonpath = Dir(Path, vbDirectory) 5     Do While sonpath <> "" 6          跳过当前的目录及上层目录 7         If sonpath <> "." And s <> ".." Then 8              使用位比较来确定MyName代表一目录 9             If (GetAttr(Path & sonpath) And vbDirectory) = vbDirectory Then10                 MsgBox sonpath   如果它是一个目录,打印名称11                  然后就可以打开这些目录下的文件12             End If13         End If14         sonpath = Dir   查找下一个目录15     Loop16 End Sub
View Code

 

 1  该函数为获取指定目录下所有文件名 2  注释部分,如果加上,则不包括"."和".." 3  否则获取的文件名包括上面列出的两个 4 Sub readFile1() 5     Path = "D:\video\" 6     sonpath = Dir(Path, vbDirectory) 7     Do While sonpath <> "" 8          If sonpath <> "." And sonpath <> ".." Then 9             MsgBox sonpath10          End If11         sonpath = Dir12     Loop13 End Sub
View Code

注解:

Path是指路径,其中"D:\video\"和"D:\video"是有区别的,前者可以解析到video的子目录,而后者只是解析video本身该层目录;

 

 1  读取文件内容,并将每行依次复制到A列   2  path为文件绝对地址,lineNum为行号   3 Function readFile2(path, lineNum)   4      错误机制处理,可以去掉,如果有错误,会自动跳转到Error标签处执行   5     On Error GoTo Error   6        7      打开文件,并以符号"1"来代替文件流   8     Open path For Input As #1   9           10          判断文件流"1"是否读取到文件尾  11         Do While Not EOF(1)  12               13              读取文件流"1"中的一行,并赋值给变量"a"  14             Line Input #1, a$  15              将变量"a"复制到指定单元格里  16             Range("A" + CStr(lineNum)).Value =http://www.mamicode.com/ a$  17              行号+1  18             lineNum = lineNum + 1  19         Loop  20     Close #1  21     Exit Function  22 Error: MsgBox Err.Description  23 Close #1  24 End Function
View Code
 1  读取指定目录下的所有txt文件,并将其内容拷贝到sheet1的A列中   2 Sub readTxts()   3      父级路径设置,最后有"\",注意   4     path = "d:\data\data\"   5      设置行号   6     lineNum = 1   7        8      获取该目录下所有文件名(只放置txt格式文件,其他的格式尚未判断)   9     sonpath = Dir(path, vbDirectory)  10     Do While sonpath <> ""  11         If sonpath <> "." And sonpath <> ".." Then  12             MsgBox "正在读取" + sonpath  13               14              调用读取文件的函数(txt文件绝对路径,行号)  15             result = readFile2(path + sonpath, lineNum)  16         End If  17         sonpath = Dir  18     Loop  19 End Sub  
View Code

以上两个函数是用来读取本地文本文件,将文本中的数据读取到Excel表格中

【Excel&VBA】VBA解析本地文件目录 读取文本数据