通过VBA运行Unix命令,并以Excel电子表格形式返回结果

zpf6vheq  于 2022-09-21  发布在  Unix
关注(0)|答案(1)|浏览(219)

我有这个Unix命令

cat /dataops/profits/name.csv

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

3xiyfsfu

3xiyfsfu1#

最困难的部分是将文件从Unix机器中转移到您的Windows计算机上。对于这一点,您有几种不同的方法:

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

cmd = "C:MyUtilitiesplink.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")

相关问题