我将如何将此 Excel VBA 修改为:
这是当前的 VBA:
Sub MM()
Dim fResults As Variant
fResults = GetFiles("C:\Temp")
Range("A1").Resize(UBound(fResults) + 1, 1).Value = _
WorksheetFunction.Transpose(fResults)
End Sub
// UDF to populate array with files, assign to a Variant variable.
Function GetFiles(parentFolder As String) As Variant
GetFiles = Filter(Split(CreateObject("WScript.Shell").Exec("CMD /C DIR """ & parentFolder & _
IIf(Right(parentFolder, 1) = "\", vbNullString, "\") & "*.*"" /S /B /A:-D").StdOut.ReadAll, vbCrLf), ".")
End Function
最佳答案
您的 Filter ... IIF ... 构造也在删除目录。摆脱它。就像是
GetFiles = Split(CreateObject("WScript.Shell").Exec("cmd /c dir """ & parentFolder & """ /A-H-S /B /S").StdOut.ReadAll, vbNewLine)
可能会更好地做你想做的事
关于Excel VBA CMD 列出目录内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55303782/