從brettdj(謝客brettdj)工作得很好,可能是我使用的方法,但我發現別的東西也適用,並且可能在其他情況下提供了一個優勢答案。首先,它保留了使用Dir循環訪問文件夾的極端簡單性。
在Excel 11中,我使用Dir(如問題中所述)從每個文件夾(一次一個文件夾)中創建jpg文件列表,在列A中對排序的字母數字進行排序。然後,我使用自定義列表用一個(假的)數字排序排列列A,這樣我就可以按照連續的順序處理我的jpg。然後清除Col A,然後重複下一個文件夾。
要生成自定義列表:
在工作列的第1行中輸入
=ROW() & ".jpg"
和向下填充到任何訴訟。在我的情況下,我在自定義列表上使用了1000個項目,因爲這是我期望在任何文件夾中的jpg的最大數量。
自定義列表僅接受文本(或根據MS幫助的「簡單文本」),因此在導入爲自定義列表之前,必須使用「粘貼」>「特殊」>「值」將新生成的公式列表轉換爲文本。列表中的每個項目都是預期的文件名之一。最終的自定義列表如下:
1.jpg
2.jpg
3.jpg
…
…
1000.jpg
我導入後,我的新的自定義列表(工具>選項>自定義列表>導入),它成爲在數據下拉菜單中可用的選項>排序>選項>第一關鍵排序順序。
如果你正在做這種用VBA那麼這裏就是記錄儀提供:
Range("A:A").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=6, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
前5名自定義列表是內置到Excel,所以OrderCustom:= 6是新的自定義列表。請記住在進行正常排序時將其更改回OrderCustom:= False。自定義列表保持附加到他們創建的Wkb直到被刪除。
來源
2012-01-02 00:26:46
Roy
你的文件如何顯示在文件夾中列出(按修改日期等)? – brettdj 2012-01-01 02:56:41
文件名全部由一個數字組成,例如「1」,「2」等,所以文件將是「1.jpg」等,並且數字可以在每個文件夾中無限制地上升。這些文件在Windows資源管理器中按照「1.jpg」,「2.jpg」,「3.jpg」等排序,這是所需的順序,但是Dir返回「1.jpg」,「10.jpg」等。 – Roy 2012-01-01 03:52:13
I過去通過命名帶有前導零的文件來解決這個問題。 – EFH 2014-08-20 17:14:06