从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