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

代码如下PublicSubtest2()DimfilenameAsStringfilename=Dir$(ThisWorkbook.Path&"\"&"abc.txt")... 代码如下
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文件
展开
 我来答
闪星2
2016-07-22 · TA获得超过3007个赞
知道大有可为答主
回答量:2898
采纳率:58%
帮助的人:1050万
展开全部

问题的关键就在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,不是传一个文件名给他,而是传文件夹路径

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huang1314wei
2016-07-22 · 知道合伙人软件行家
huang1314wei
知道合伙人软件行家
采纳数:1323 获赞数:5877
税畅核心工程师

向TA提问 私信TA
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式