通过vba运行ruby脚本

时间:2015-12-16 15:21:00

标签: vba excel-vba excel

有没有办法通过Excel宏启动Ruby脚本?

宏创建了两个CSV文件,我想自动执行

操作
ruby dostuff.rb file1.csv file2.csv

3 个答案:

答案 0 :(得分:1)

评论部分明确指出:完全限定参数(如果它们是文件),并且文件与Excel工作表不在同一目录中。

Shell("ruby C:\Folder\dostuff.rb C:\Folder\file1.csv C:\Folder\file2.csv", vbNormalFocus)

答案 1 :(得分:1)

有时您需要使用环境变量comspec从VBA成功启动外部程序。 See these blog search result for examples.

答案 2 :(得分:1)

使用VBA运行ruby脚本有多种方法。

使用Shell,与控制台异步:

Public Sub RunRuby(file As String, ParamArray args())
  Shell "ruby.exe """ & file & """ " & Join(args, " ")
End Sub

使用Shell,同步不使用控制台:

Public Sub RunRuby(file As String, ParamArray args())
  Shell "rubyw.exe """ & file & """ " & Join(args, " ")
End Function

使用WScript.Shell,同步不使用控制台并使用退出代码:

Public Function RunRuby(file As String, ParamArray args()) As Long
  Dim obj As Object
  Set obj = CreateObject("WScript.Shell")
  RunRuby = obj.Run("rubyw.exe """ & file & """ " & Join(args, " "), 0, True)
End Function

设置工作目录以防有相对路径:

ChDir "C:\Folder1"

,或使用当前工作簿的文件夹:

ChDir ThisWorkbook.Path