gpt4 book ai didi

excel - Microsoft Explorer 和 dir 命令之间的不同文件排序

转载 作者:行者123 更新时间:2023-12-04 22:25:38 27 4
gpt4 key购买 nike

我有很多测量文件作为 csv 文件,我想将它们并排合并到一个 excel 文件中。我的 VBA 代码工作正常,只是它以错误的字母顺序对文件名进行排序。
当我查看资源管理器时,我会以正确的顺序获取文件:

enter image description here

但是当我在命令行中使用 dir 命令或使用 VBA 代码列出/排序文件名时:

Sub Dateien_eines_Ordners_Auflisten()

Dim lngZeile As Long
Dim objFileSystem As Object
Dim objVerzeichnis As Object
Dim objDateienliste As Object
Dim objDatei As Object

Set objFileSystem = CreateObject("scripting.FileSystemObject")
Set objVerzeichnis = objFileSystem.GetFolder("D:\Dokumente\Masterarbeit-Bertrandt\Versuche_Prüfstand\Messungen\150RPM\")
Set objDateienliste = objVerzeichnis.Files

lngZeile = 1

For Each objDatei In objDateienliste
If Not objDatei Is Nothing Then
ActiveSheet.Cells(lngZeile, 1) = objDatei.Name
lngZeile = lngZeile + 1
End If
Next objDatei

End Sub

我得到以下输出:

enter image description here

如何像资源管理器那样对文件进行排序?
为什么排序会有差异?

非常感谢您的帮助!

最佳答案

由于FileSystemObject根本不进行排序(它返回文件系统中的名称,可能看起来是随机的)只需在使用 Range.Sort method 插入文件名后使用文件名对列进行排序.

Option Explicit

Sub SortColumnA()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")

With ws.Sort
.SortFields.Clear
.SortFields.Add2 Key:=ws.Range("A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

.SetRange ws.Range("A:A")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

关于excel - Microsoft Explorer 和 dir 命令之间的不同文件排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57956964/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com