vba中的filename=Dir不能遍历文件

代码如下
Public Sub test2()
Dim filename As String
filename = Dir$(ThisWorkbook.Path & "\" & "abc.txt") 这个工作薄所在文件夹得abc.txt文件
Do While Len(fn) > 0
Debug.Print (fn)
fn = Dir
Loop
End Sub

然后运行结果就只打印一个abc.txt,我确定这个文件夹里面还有其他的txt文件

第1个回答  2016-07-22

问题的关键就在fn变量,你fn变量怎么来?

当第一次执行do循环的时候,Len(fn) > 0。此时fn是什么值?


看看msdn例子

追问

filename = Dir$(ThisWorkbook.Path & "\" & "abc.txt")
这个filename就是fn,我忘了改了。
第一次fn="abc.txt"
然后debug.print (fn) ,这里会打印到窗口
最后fn=Dir()这里就跳出循环了
窗口上只打印一个abc.txt

追答

你再看看它的用法,假如要获取目录下的txt,不是传一个文件名给他,而是传文件夹路径

追问

哥们儿,你能帮我写一下吗?就是遍历并打印当前工作薄文件夹下所有的txt文件名

追答

大兄弟,要学会看文档,多看几遍吧

本回答被提问者采纳
第2个回答  2016-07-22
Public Sub test2()
Dim filename As String
filename = Dir$(ThisWorkbook.Path & "\" & "*.txt") 这个工作薄所在文件夹得abc.txt文件
Do While Len(fn) > 0
Debug.Print (fn)
fn = Dir
Loop
End Sub
相似回答