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的条件。
- 我想从B2,B3,B4开始在单元格中打印结果…
有人能帮我解决这两个问题吗? 提前致谢。
-
将
varDirectory = Dir("C:\Macro\*.txt", vbNormal)
更改为varDirectory = Dir(strDirectory, vbNormal)
-
将
Cells(i + 1, 1) = varDirectory
为Cells(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