有没有办法通过Excel宏启动Ruby脚本?
宏创建了两个CSV文件,我想自动执行
操作ruby dostuff.rb file1.csv file2.csv
答案 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