我使用VBSCRIPT创建了一个使用SAS的Excel文档。以下是有效的代码:
filename vbscript "&fich_trim..vbs";
DATA _NULL_;
FILE vbscript;
PUT "Dim Exc, Classeur";
put "Dim Col";
PUT "Set Exc = CreateObject(""Excel.Application"")";
PUT "Exc.Visible = False";
PUT "Set Classeur = Exc.Workbooks.Open (""&FICH_trim..XML"")";
do i = 4 to (&nb_ins.*2) by 2;
put 'Classeur.Worksheets(1).Cells(73,' i ').formula = "=SUM(D6:D69)-D70"';
*put 'Classeur.Worksheets(1).Cells(73,' i ').formulaR1C1 = "=SUM(R(-67)C:R(-4)C)-R(-3)C"';
end;
PUT "Classeur.Saveas (""&fich_trim..xls""),1";
PUT "Exc.Quit";
RUN;
option noxwait xsync;
%SYSEXEC "&fich_trim..VBS";
%sysexec del "&fich_trim..vbs";
%sysexec del "&fich_trim..xml";
我的主要问题是循环语句。正如你在我的循环中看到的那样,我在评论中有一条线,我试图使用R1C1公式而不是标准形式的excel公式。当我使用R1C1线时,它给我一个错误。我更喜欢使用R1C1标准,因为在我的循环中我想轻松指定"(SUM((D + i)6:(D + i)69)"我真的不知道如何这样做很容易,所以我发现R1C1标准是最简单的方法。
谢谢你的时间!答案 0 :(得分:0)
主要是你的问题是R1C1公式使用[]括号。
所以,你的公式可能是:
=SUM(R[-67]C:R[-4]C)-R[-3]C