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)')

このコードも実行されますが、何らかの理由でマクロが2回実行されます。上記のsnytaxは、引数を使用してマクロを呼び出す例が見つからないため、多少推測できます。

正しい構文が何であるか、または私が達成しようとしていることが可能である場合でも、ヘルプはあります(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)')

しましたか?もしそうなら、それは2つのマクロが実行された理由を説明するでしょう!

于 2011-12-17T07:16:45.173 に答える