在VBSCRIPT中使用R1C1公式

时间:2015-05-27 20:53:50

标签: excel vbscript sas

我使用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标准是最简单的方法。

谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

主要是你的问题是R1C1公式使用[]括号。

所以,你的公式可能是:

=SUM(R[-67]C:R[-4]C)-R[-3]C