Excel VBA CMD 列出目录内容

标签 excel vba cmd

我将如何将此 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/

    相关文章:

    vba - 计算变化窗口内的移动平均值

    vba - 将 Outlook 电子邮件回复作为任务收集并填充到 Excel 电子表格中

    python - 为什么命令 Python 在命令提示符中不执行任何操作?

    batch-file - 批处理文件读取第一行未使用的文本,然后标记为已使用

    javascript - 创建工作簿时未定义不是函数

    vba - 对象Vba读取项目

    excel - 如何使用 VSTO 在 Excel 中的自定义 xml 功能区中禁用其他工具栏

    excel - VBA:根据变量选择行 - 编译错误

    excel - 用于检查具有复杂条件的空组合框或文本框的 VBA 函数

    java - 为什么 ">> "不会在我的 printf 语句末尾打印出来?