【问题标题】:Can an Excel macro pull output from a command line directly into a sheet?Excel 宏可以将命令行的输出直接拉到工作表中吗?
【发布时间】:2014-01-28 03:22:18
【问题描述】:

我有一个 VBA 宏,它执行命令行函数来创建一个列出目录中文件的文本文件;但是,与其将列表从文本文件复制并粘贴/导入到工作表中,是否可以简单地将命令行的 putput 直接传递到工作表中?

我现在用来创建文件的 VBA 代码是:

CMD = "DIR /A:-D-H /O:-D-G /B \\directory\* > \\sleuth.txt"
Shell "cmd.exe /c " & CMD

我非常感谢这方面的任何想法!

【问题讨论】:

  • 您当然可以让 VBA 打开文本文件,将其读入,然后将其写到您的工作表中。
  • 我认为您问错了问题 - 与其尝试将 shell 命令的输出直接放入工作表中,不如直接在 VBA 中获取目录列表,而不是在第一名?参见例如stackoverflow.com/questions/3017318/… 的答案
  • RBarry young - 我绝对可以做到,但我想如果我能迈出几步,为什么不呢? Vicky,这是一个非常好的主意,尽管我不完全确定如何让子文件夹包含在搜索中(与当前任务无关,但还有其他一些重要的任务)。我会在这里挖掘,看看我是否能找到一个这样做的人的例子。谢谢!
  • 或者只是随便看看函数 - 耶!

标签: excel vba cmd


【解决方案1】:

您可以使用this class 将其保存到字符串变量中。 (直接下载链接here。)

这是一个示例用法:

Sub Test()
    Dim cls As New clsRunApp
    Dim s As String
    cls.command = "cmd.exe /k dir"

    s = cls.RunAppWait_CaptureOutput
    Set cls = Nothing
    MsgBox (s)
End Sub

从那里,您可以直接将其输出到您的工作表。

【讨论】:

    猜你喜欢
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    • 2011-04-16
    • 1970-01-01
    相关资源
    最近更新 更多