【发布时间】:2015-03-02 11:12:32
【问题描述】:
我在 excel 中使用此 vba 代码从特定文件夹中获取文件名:
Sub getfilelistfromfolder()
Dim varDirectory As Variant
Dim flag As Boolean
Dim i As Integer
Dim strDirectory As String
strDirectory = Application.ActiveWorkbook.Path & "\"
i = 1
flag = True
varDirectory = Dir("C:\Users\USER\Documents\*.doc", vbNormal)
Range("A2:A100").Select
Selection.ClearContents
While flag = True
If varDirectory = "" Then
flag = False
Else
Cells(i + 2, 1) = varDirectory
varDirectory = Dir
i = i + 1
End If
Wend
End Sub
但是,我只想获取 .doc 而不是 .docx。
如何修改此代码以仅获取 .doc 文件?
注意:这是我给出的一个例子。我真正的文件扩展名是我们程序特定的文件类型:.out 和 .outreview
我只想获取 .out 文件和 not .outreview 文件的列表。
示例文件名:
file1.out
file2.outreview
file3.out
file4.outreview
我只想列出 .out 文件。
谢谢
【问题讨论】:
-
好吧,如果你使用相同的
*.out而不是*.out*或*.*,你应该只得到文件。但是,如果没有看到您的真实代码和一些文件名,就很难得到正确的答案。 -
@PaulFrancis:添加了示例文件名。否则,我认为我的问题很清楚。
-
我从来没有说过你的问题不清楚。有时,您遵循的逻辑实际上可能不是您的代码指示编译器执行的操作。所以最好提供实际的代码。您提供的 PSEUDO 代码只会给出 .doc 而不是 .docx
-
@PaulFrancis:代码与我使用的完全相同。我将 .doc 放在示例代码中,而 .out 在我自己的代码中。我替换它的原因是为了网站的 SEO 目的,以便未来的用户可以轻松找到这个问题。如果我在标题中添加了 .out 和 .outreview,那么没有人会输入这些未知的文件扩展名。这些扩展仅用于我们的私有软件。