返回列表 上一主題 發帖

[發問] 關於Dir 取得的清單做排序,感謝~

[發問] 關於Dir 取得的清單做排序,感謝~

各位大大,最近我有寫了一個簡單的VBA,如下:
我是想要在   myFile = Dir(myFolder & "*.xlsx") 時即由名稱小到大,開始做接下來的動作。
但有的時候會發生名稱可能由大到小來進行接下來的動作,很奇怪,各位大大知道這是什麼造成的嗎?
很困惱我需要名稱是由小到大的順序做動作,感謝你們,謝謝!~:'(

Sub file()
    Dim myFolder As String, myFile As String
    Dim i As Integer
    myFolder = "C:\New folder\"
    myFile = Dir(myFolder & "*.xlsx") '就是這裡,想名稱由小到大
    i = 1
    Do While myFile <> ""
        Cells(i, 1).Value = myFile
        myFile = Dir()
        i = i + 1
    Loop
End Sub

還是可以再設一個名 稱清單為 myFile2= myFile的排序
然後:
  i = 1
    Do While myFile2 <> ""
        Cells(i, 1).Value = myFile2
        myFile2 = Dir()
        i = i + 1
    Loop

不知道行得通嗎?問不到人.....感恩

TOP

kimbal 謝謝您,
但有辦法在VBA程式內做到嗎?
因為想列一個排好大小順序的清單給接下來的迴圈使用,您用的方式我了解(先列出清單在excel sheet 中,然後再排序),但我還是想用VBA中寫成!
--------------------------------------------------------------------------------------------
我有查到在Dos 下的目錄顯示(DIR),可以依照指定的排序順序來列出檔案,如下網址。而VBA尚無找到:
http://jax-work-archive.blogspot.tw/2009/04/dos-dir.html
感恩^  ^~

TOP

對於之前問的問題:
但有的時候會發生名稱可能由大到小來進行接下來的動作,很奇怪,各位大大知道這是什麼造成的嗎?

我發現在XP時是檔案更新的日期由"新→舊"作為順序
在Win8時是檔案更新的日期由"舊→新"作為順序

所以想請問各位大大,可以在XP時是檔案更新的日期由"舊→新"作為順序嗎???謝謝~

TOP

回復 6# stillfish00
stillfish00大~很感動,謝謝您的幫忙,我明天去公司試一下~
上次"落點問題"也是你幫我解的,現在我每天都有在用喔! 我都有記得,真的真的~ 謝謝您 ^ ^~

TOP

        靜思自在 : 世上有兩件事不能等:一、孝順 二、行善。
返回列表 上一主題