在 VBSCRIPT 中使用 R1C1 公式

Using R1C1 formula in VBSCRIPT

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

感谢您的宝贵时间!

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

那么,你的公式大概是:

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