Я установил код в ПК SAS в моей Windows 7 с Excel 2010 и ПК SAS 9.4. По сути, код взял набор данных 'wide2' и вставил его в единственный файл Excel, который открыт в ОС в тот момент, а затем сохранил его. Ниже приведен код, который я использовал:
%macro paste(number);
proc print data=wide2;
run;
PROC CONTENTS DATA=wide2 /*NOPRINT*/ OUT=CNT ;
RUN;
PROC SORT DATA=CNT ;
BY VARNUM ;
RUN;
PROC SQL /*NOPRINT*/;
SELECT NAME
INTO: VARS SEPARATED BY ' '
FROM CNT ;
SELECT COUNT(DISTINCT NAME)
INTO: COLS SEPARATED BY ' '
FROM CNT ;
SELECT NOBS
INTO: ROWS
FROM CNT
WHERE VARNUM = 1;
QUIT;
proc print data=cnt;run;
FILENAME TEMP DDE "EXCEL|Sheet&number.!R1C1:R200C200" ;
data _null_ ;
file temp ;
if _n_=1 then do;
do _n_=1 to &cols ;
set cnt(keep=name rename=(name=__name__)) ;
put __name__ @;
end;
put;
end;
set wide2 ;
put &vars ;
run ;
%mend paste;
Поэтому, когда я выполнял макрос, такой как% paste (1), он вставлял данные в лист Excel1.
Теперь мы перешли на Windows 10, которая имеет ту же версию SAS для ПК, но Excel 2016.
Когда я запускаю один и тот же код с тем же набором данных, ПК SAS зависает на вечность через пару секунд, а затем мне нужно просто убить процесс. С открытым файлом excel ничего не происходит. Я даже не вижу журнал, так как ПК SAS зависает. Пожалуйста, предложите решение для этого. (Верхняя панель PCSAS, когда он зависает, говорит «выполняется шаг DATA»)