Ik heb in Excelmacros.xls een macro gemaakt (analyse_trc) met daarin een formule die je moet bevestigen d.m.v. crtl-shift-enter. Wanneer ik een ander excelbestand open (trc.xls) en via F8 de macro analyse_trc run, dan werkt het allemaal prima. Maar ik wil de uitvoer van deze macro graag opnemen in een stukje Matlab-code. De Matlabcode ziet er als volgt uit:
Excel=actxserver('Excel.Application');
set(Excel, 'Visible', 0);
winopen('C:\Excelmacros.xls');
Excel.Workbooks.Open('trc.xls');
Excel.Run(['''', 'Excelmacros.xls', '''!analyse_trc']);
Oftewel:
open Excel, , open Excelmacros.xls, open daarna trc.xls en run vervolgens in trc.xls de macro analyse_trc (die in Excelmacros.xls staat). De macro begint ook te werken, maar loopt vast op de formule die bevestigt moet worden d.m.v. crtl-shift-enter... De foutmelding die ik krijg is: "Eigenschap FormulaArray van klasse Range kan niet worden ingesteld"
De formule ziet er trouwens als volgt uit:
Range("Z4").Select
Selection.FormulaArray = _ "=SUM(IF(R2C3:R65536C3>=R[-1]C25,IF(R2C3:R65536C3<=R[0]C25,IF(R2C1:R65536C1=R3C,IF(R2C2:R65536C2=R2C26,R2C9:R65536C9,0),0),0),0))/SUM(IF(R2C3:R65536C3>=R[-1]C25,IF(R2C3:R65536C3<=R[0]C25,IF(R2C1:R65536C1=R3C,IF(R2C2:R65536C2=R2C26,1,0),0),0),0))"
Ja, het is inderdaad een lange formule, maar hij werkt
Iemand een idee/uitleg wat er misgaat in de communicatie tussen Matlab en Excel? Want waarom doet die macro het wel als ik 'm run vanuit excel en doet die het niet als ik 'm laat runnen vanuit Matlab?
Excel=actxserver('Excel.Application');
set(Excel, 'Visible', 0);
winopen('C:\Excelmacros.xls');
Excel.Workbooks.Open('trc.xls');
Excel.Run(['''', 'Excelmacros.xls', '''!analyse_trc']);
Oftewel:
open Excel, , open Excelmacros.xls, open daarna trc.xls en run vervolgens in trc.xls de macro analyse_trc (die in Excelmacros.xls staat). De macro begint ook te werken, maar loopt vast op de formule die bevestigt moet worden d.m.v. crtl-shift-enter... De foutmelding die ik krijg is: "Eigenschap FormulaArray van klasse Range kan niet worden ingesteld"
De formule ziet er trouwens als volgt uit:
Range("Z4").Select
Selection.FormulaArray = _ "=SUM(IF(R2C3:R65536C3>=R[-1]C25,IF(R2C3:R65536C3<=R[0]C25,IF(R2C1:R65536C1=R3C,IF(R2C2:R65536C2=R2C26,R2C9:R65536C9,0),0),0),0))/SUM(IF(R2C3:R65536C3>=R[-1]C25,IF(R2C3:R65536C3<=R[0]C25,IF(R2C1:R65536C1=R3C,IF(R2C2:R65536C2=R2C26,1,0),0),0),0))"
Ja, het is inderdaad een lange formule, maar hij werkt

Iemand een idee/uitleg wat er misgaat in de communicatie tussen Matlab en Excel? Want waarom doet die macro het wel als ik 'm run vanuit excel en doet die het niet als ik 'm laat runnen vanuit Matlab?
