簡體   English   中英

使用VBA對文件夾中的文件進行排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM