Я создаю документ excel с SAS с использованием VBSCRIPT. Вот код, который работает:Использование формулы R1C1 в VBSCRIPT
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 в excel (временно переведите Excel в формат R1C1 в настройках) и получите это прямо там. – Joe
См. [Этот вопрос/ответ] (http://stackoverflow.com/questions/13165938/what-is-the-function-of-formular1c1) для получения более подробной информации о том, как использовать это правильно, кстати. – Joe