2

我有以下一些工作正常的红宝石代码

require 'WIN32OLE'
excel = WIN32OLE.new('Excel.Application')
excel.visible = true
path =  Dir.pwd + '\Testargs.xlsm'
excel.workbooks.open(path)
excel.run('IdontTakeargs')

其中 IdontTakeargs 是 Testargs.xlsm 工作簿中的一个宏。

如果我尝试调用一个带有参数的宏,即:

excel.run('Itakeargs(1)')

此代码也会运行,但由于某种原因,它会运行宏两次。上面的语法有点猜测,因为我找不到使用参数调用宏的示例。

任何关于正确语法的帮助,或者即使我试图完成的事情甚至是可能的(调用一个接受来自 ruby​​ 的参数的宏。)

4

2 回答 2

1

将参数传递给 VBA 宏的语法似乎是

excel.run('Itakeargs', '1')

尽管如此,观察到的(和可重现的)行为还是有些奇怪。

于 2011-12-22T13:31:36.463 回答
0

为了排除一个愚蠢的可能性,你没有你的新代码

require 'WIN32OLE'
excel = WIN32OLE.new('Excel.Application')
excel.visible = true
path =  Dir.pwd + '\Testargs.xlsm'
excel.workbooks.open(path)
excel.run('IdontTakeargs')
excel.run('Itakeargs(1)')

你是否?如果你这样做了,那就解释了为什么要运行两个宏!

于 2011-12-17T07:16:45.173 回答