首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过VBA运行Unix命令,并在Excel电子表格中返回结果

通过VBA运行Unix命令,并在Excel电子表格中返回结果
EN

Stack Overflow用户
提问于 2015-04-08 23:59:37
回答 1查看 8.2K关注 0票数 0

我有这个Unix命令

代码语言:javascript
复制
cat /dataops/profits/name.csv

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

EN

回答 1

Stack Overflow用户

发布于 2015-04-09 22:00:34

最困难的部分是把文件从Unix机器上转移到你的Windows计算机上。为此,您有几种不同的方法:

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

代码语言:javascript
复制
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并加载该文件,如下所示:

代码语言:javascript
复制
Set xl = CreateObject("Excel.Application")
xl.Visible = True
Set wb = xl.Workbooks.Open("c:\name.csv")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29519617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档