Excel VBA按types从当前文件夹中获取文件列表

我有一个Excelmacros从当前文件夹types获取文件列表。

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:\Macro\*.txt", vbNormal) While flag = True If varDirectory = "" Then flag = False Else Cells(i + 1, 1) = varDirectory varDirectory = Dir i = i + 1 End If Wend End Sub 

这工作正常。 但是我想做两个修改:1.改变path名

 varDirectory = Dir("C:\Macro\*.txt", vbNormal) 

激活工作簿path。 当我试图改变它,我得到错误。 我不知道如何结合

Application.ActiveWorkbook.Path&“\”

与.txt文件types的条件。

  1. 我想从B2,B3,B4开始在单元格中打印结果…

有人能帮我解决这两个问题吗? 提前致谢。

  1. varDirectory = Dir("C:\Macro\*.txt", vbNormal)更改为varDirectory = Dir(strDirectory, vbNormal)

  2. Cells(i + 1, 1) = varDirectoryCells(i + 1, 2) = varDirectory

我不知道你用ActiveWorkbook运行代码时得到了什么错误,但是如果你使用下面的代码,它应该可以工作。 对于第二个问题,您应该将单元格的第二个参数从1(A)更改为2(B)。

 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(strDirectory & "*.pdf", vbNormal) While flag = True If varDirectory = "" Then flag = False Else Cells(i + 1, 2) = varDirectory varDirectory = Dir i = i + 1 End If Wend End Sub 

那么,varDirectorystring似乎工作正常,当我尝试“立即”,所以我不认为有错误。

刚刚设置

 strDirectory = Application.ActiveWorkbook.Path & "\*.txt" 

并改变这一点:

  Else Cells(i + 1, 1) = varDirectory ' this is... unnecessary: varDirectory = Dir i = i + 1