【问题标题】:Run Unix Command via VBA and return the results in Excel Spreadsheet通过 VBA 运行 Unix 命令并在 Excel 电子表格中返回结果
【发布时间】:2015-06-13 16:54:15
【问题描述】:

我有这个 Unix 命令

cat /dataops/profits/name.csv

我可以将其保存到.txt 文件并通过 VBA 宏运行,然后自动将结果返回到我的 Excel 电子表格中吗?

【问题讨论】:

  • 试试看this,看来你需要的。

标签: vba unix


【解决方案1】:

最困难的部分是将文件从 Unix 盒子传送到您的 Windows 计算机。您有几种不同的方法:

1) 这是一个纯粹的 VBA 方法。您需要从here 下载名为 plink 的免费命令行版本的 Putty。在这种方法中,您在命令行上流式传输数据并将数据传输到本地文本文件中。

cmd = "C:\MyUtilities\plink.exe -pw PASSWORD USERNAME@IPADDRESS cat /dataops/profits/name.csv"

Set datafile = CreateObject("Scripting.FileSystemObject").CreateTextFile("c:\name.csv", True)

Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec(cmd)
Do While oExec.Status = 0
   If Not oExec.StdOut.AtEndOfStream Then
      datafile.WriteLine oExec.StdOut.Readall
   End If
Loop
datafile.Close

2) 另一种方法是运行 Windows 计划任务批处理文件,该文件使用 FTP 传输文件,如 here 所述。我个人认为这将是您最好的选择,因为 VBA 代码可以专注于加载文件,而不是连接到 Unix 并获取文件。

3) 如果您在 Unix 服务器上为某个目录设置了 Samba 共享,那么您将能够从 Windows 中看到该目录,并且可以去那里获取文件。

在 Windows 计算机上获得文件后,您可以打开 Excel 并加载文件,如下所示:

Set xl = CreateObject("Excel.Application")
xl.Visible = True
Set wb = xl.Workbooks.Open("c:\name.csv")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多