[英]Sorting files in a folder using VBA
我有一個代碼,可以讀取文件夾中的所有文件,將文件名粘貼到工作表中,然后將文件數輸出到消息框中。
問題:由於某種原因,當我運行代碼時,它可能會以錯誤的順序獲取文件,這會中斷我的計算(這是我對另一個子程序所做的)。
問題:有沒有辦法保證文件始終正確順序?
到目前為止,我所做的事情:在代碼輸出文件名之前,我想使用一些代碼以給定的順序對文件夾中的文件進行排序,但是我找不到有關如何執行此操作的參考。
碼:
Sub Counter()
Dim path As String, count As Integer, i As Long, var As Integer
Dim ws As Worksheet
Dim Filename As String
Dim FileTypeUserForm As UserForm
Dim x As String
Application.Calculation = xlCalculationManual
path = ThisWorkbook.path & "\*.*"
Filename = Dir(path)
ThisWorkbook.Sheets("FILES").Range("A:A").ClearContents
x = GetValue
If x = "EndProcess" Then Exit Sub
Set ws = ThisWorkbook.Sheets("FILES")
i = 0
Do While Filename <> ""
var = InStr(Filename, x)
If var <> 0 Then
i = i + 1
ws.Cells(i + 1, 1) = Filename
Filename = Dir()
Else: Filename = Dir()
End If
Loop
Application.Calculation = xlCalculationAutomatic
ws.Cells(1, 2) = i
MsgBox i & " : files found in folder"
End Sub
Function GetValue()
With FileTypeUserForm
.Show
GetValue = .Tag
End With
Unload FileTypeUserForm
End Function
將所有文件名放在A列中時添加排序指令
range("A1:A" & i).sort key1:=range("A1"),order1:=xlascending,header:=xlno
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.