【发布时间】:2015-06-13 16:54:15
【问题描述】:
我有这个 Unix 命令
cat /dataops/profits/name.csv
我可以将其保存到.txt 文件并通过 VBA 宏运行,然后自动将结果返回到我的 Excel 电子表格中吗?
【问题讨论】:
-
试试看this,看来你需要的。
我有这个 Unix 命令
cat /dataops/profits/name.csv
我可以将其保存到.txt 文件并通过 VBA 宏运行,然后自动将结果返回到我的 Excel 电子表格中吗?
【问题讨论】:
最困难的部分是将文件从 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")
【讨论】: