使用win32ole从Ruby调用VBScript函数(例如VBScript的Chr(charcode)
)是否切实可行?
背景:在研究如何将一些格式正确的标题添加到Excel工作表时,我遵循了我的标准操作程序:记录一个excel宏并复制并粘贴代码。
的VBScript:
ActiveWindow.View = xlPageLayoutView
With ActiveSheet.PageSetup
' Irrelevant options snipped
.CenterHeader = "&F" & Chr(10) & "&A"
' More irrelevant options snipped
End With
以下Ruby代码
# workbook is an existing workbook object
worksheet = workbook.Worksheets.Add
worksheet.PageSetup.CenterHeader = "&F \n &A"
有效,但我必须查找Chr(charcode)
documentation来检查它是完全相同的。我试着做了
worksheet.PageSetup.CenterHeader = "&F" + workbook.Chr(10) + "&A"
但得到了
WIN32OLERuntimeError: unknown property or method: `Chr'
HRESULT error code:0x80020006
Unknown name.
from (irb):6:in `method_missing'
from (irb):6
from c:/Ruby19/bin/irb:12:in `<main>'
有没有可行的方法来做后一种方法?
答案 0 :(得分:1)
如何'回合
worksheet.PageSetup.CenterHeader = "&F" + 10.chr + "&A"
答案 1 :(得分:1)
我不会在vbscript脚本中调用更容易在Ruby中完成的东西,但这是可能的。
你是如何要求的:
require 'win32ole'
sc = WIN32OLE.new("ScriptControl")
sc.language="VBScript"
center_header = sc.eval('"&F" & Chr(10) & "&A"') #"&F\n&A"
以及如何在Ruby本身中完成它
"&F" + 10.chr + "&A" #"&F\n&A"
或
"&F\n&A" #"&F\n&A"