我有一些Jruby / Celerity脚本,我想从Excel VBA运行,然后将脚本结果输出到Excel工作表。这可能吗?任何人都可以提出潜在的方法或一些潜在的资源。
我希望实现的目标:
编辑:我还应该提一下,我在Mac上运行Excel 2011。我的一个困惑之处在于,我在使用ruby自动化Excel时发现的所有内容似乎都假设是Windows操作系统。 (#需要WIN32OLE库)。我是否会在OS X下使用运行excel的相同库。
非常感谢。
答案 0 :(得分:2)
require "rubygems"
require "celerity"
word_to_search = ARGV[0]
word_to_check = ARGV[1]
#puts "DEBUG - word_to_search: #{word_to_search}"
#puts "DEBUG - word_to_check: #{word_to_check}"
browser = Celerity::Browser.new
browser.goto('http://www.google.com')
browser.text_field(:name, 'q').value = word_to_search
browser.button(:name, 'btnG').click
puts browser.text.include? word_to_check
假设我们必须使用这个简单的脚本在Mac上连接 Excel 2011 ,该脚本需要几个输入参数并返回结果
#!/bin/bash --login
rvm use jruby > NULL
ruby simpletest.rb $1 $2
我们编写一个可以通过VBA代码调用的shell;
请注意设置适当的权限chmod u+x test.sh
shebang:#!/bin/bash --login
这是运行rvm
以选择jruby(这是celerity
支持的唯一ruby
Public Function SimpleTest(sWordToSearch, sWordToCheck)
Dim sCommand As String
sCommand = "do shell script ""cd /Users/ronda/projects/so-test1; ./test.sh "
sCommand = sCommand & sWordToSearch & " "
sCommand = sCommand & sWordToCheck & """"
SimpleTest = MacScript(sCommand)
End Function
请注意以下代码:/Users/ronda/projects/so-test1
是我们脚本的路径
通过将脚本运行到较低级别,可以简化问题的诊断:
$ cd ~/projects/so-test1
$ ./test.sh Ruby Language
true
$ ./test.sh Fish Language
false
$ rvm use jruby
Using /Users/ronda/.rvm/gems/jruby-1.7.11
$ ruby simpletest.rb Ruby Language
true
$ ruby simpletest.rb Ruby Fish
false
只是一些有用的链接: