我有一个excel宏来从当前文件夹中按类型获取文件列表。
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.在
中更改路径名称varDirectory = Dir("C:\Macro\*.txt", vbNormal)
到活动的工作簿路径。当我试图改变它时,我得到了错误。我不知道如何结合
Application.ActiveWorkbook.Path& “\”
使用.txt文件类型条件。
有人可以帮我解决这两个问题吗? 提前谢谢。
答案 0 :(得分:2)
将varDirectory = Dir("C:\Macro\*.txt", vbNormal)
更改为varDirectory = Dir(strDirectory, vbNormal)
将Cells(i + 1, 1) = varDirectory
更改为Cells(i + 1, 2) = varDirectory
答案 1 :(得分:1)
我不知道在使用ActiveWorkbook运行代码时遇到了什么错误,但如果使用以下代码则应该有效。对于第二个问题,您应该将Cell的第二个参数从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
答案 2 :(得分:0)
好吧,当我尝试"立即"时,varDirectory字符串似乎工作正常。所以我不认为那里有错误。
只需设置
strDirectory = Application.ActiveWorkbook.Path & "\*.txt"
并改变这一点:
Else
Cells(i + 1, 1) = varDirectory
' this is... unnecessary: varDirectory = Dir
i = i + 1