VBA遍历文件时用""替代Dir仅输出一个文件,求StrFile = Dir的含义
VBA中
StrFile = Dir的具体含义 VBA的Dir函数是带状态的搜索工具:
- 第一次调用带路径参数的
Dir(比如你的代码里StrFile = Dir("c:\testfolder\*")),它会返回目标目录下的第一个匹配文件/文件夹名称,同时自动记录当前的搜索上下文(包括目标路径、匹配规则)。 - 当你不带任何参数调用
Dir(也就是StrFile = Dir)时,它会基于之前保存的搜索上下文,返回下一个符合规则的文件/文件夹名称;如果已经遍历完所有匹配项,就返回空字符串。
你把代码里的StrFile = Dir改成StrFile = ""后,循环只打印一个文件的原因很简单:第一次拿到第一个文件名并打印后,直接把StrFile设为空,循环条件Len(StrFile) > 0不成立,循环直接终止,自然不会继续遍历后续文件。
正确的遍历代码应该是这样的:
Sub LoopThroughFiles() Dim StrFile As String StrFile = Dir("c:\testfolder\*") Do While Len(StrFile) > 0 Debug.Print StrFile StrFile = Dir ' 不带参数调用,获取下一个文件 Loop End Sub
内容的提问来源于stack exchange,提问作者Peace
相关产品推荐
相关产品推荐

