Mam następujący fragment kodu ruby, który działa dobrze
require "WIN32OLE"
excel = WIN32OLE.new("Excel.Application")
excel.visible = true
path = Dir.pwd + "Testargs.xlsm"
excel.workbooks.open(path)
excel.run("IdontTakeargs")
Gdzie IdontTakeargs jest makrem ze skoroszytu Testargs.xlsm.
Jeśli spróbuję wywołać makro, które pobiera argumenty, tj .:
excel.run("Itakeargs(1)")
Ten kod również działa, ale z jakiegoś powodu uruchamia makro dwukrotnie. Powyższy snytax jest raczej zgadywaniem, ponieważ nie mogę znaleźć przykładu wywołania makra z argumentami.
Każda pomoc w poprawnej składni lub nawet to, co próbuję osiągnąć, jest nawet możliwe (wywołaj makro, które akceptuje argumenty z ruby).
Odpowiedzi:
1 dla odpowiedzi № 1Wydaje się, że jest składnia do przekazania argumentu do makra VBA
excel.run("Itakeargs", "1")
Jednak obserwowane (i odtwarzalne) zachowanie jest nieco dziwne.
0 dla odpowiedzi nr 2
Aby wykluczyć głupią możliwość, nie masz nowego kodu jako
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)")
czy ty? Jeśli tak, to wyjaśnij, dlaczego uruchomiono dwa makra!