o******l 发帖数: 3125 | 1 %let sambeg = %sysfunc(mdy(6, 30, 1985)) ;
%let samend = %sysfunc(mdy(12, 31, 2011));
%let nummon = %sysfunc(intck('month', &sambeg, &samend));
最后一行应该怎么改? 试过 %eval还是不行。
谢谢! | o******l 发帖数: 3125 | 2 %let sambeg = %sysfunc(mdy(6, 30, 1985)) ;
%let samend = %sysfunc(mdy(12, 31, 2011));
%let nummon = %sysfunc(intck('month', &sambeg, &samend));
%macro overall;
%do i = 1 %to &nummon;
%let t = %sysfunc(intnx('month', &sambeg, &i, 'end'));
%months(&t, 6, 6);
%end;
%mend overall;
%overall;
在macro里面,要用到系统函数的时候,应该怎么用?
怎样修改上面的代码呢?
谢谢! | k*******a 发帖数: 772 | 3 把 'month'的引号去掉
【在 o******l 的大作中提到】 : %let sambeg = %sysfunc(mdy(6, 30, 1985)) ; : %let samend = %sysfunc(mdy(12, 31, 2011)); : %let nummon = %sysfunc(intck('month', &sambeg, &samend)); : %macro overall; : %do i = 1 %to &nummon; : %let t = %sysfunc(intnx('month', &sambeg, &i, 'end')); : %months(&t, 6, 6); : %end; : %mend overall; : %overall;
| h******e 发帖数: 1791 | 4 说起来也容易,去掉month的引号就行了,因为%sysfunc是一个macro function。
【在 o******l 的大作中提到】 : %let sambeg = %sysfunc(mdy(6, 30, 1985)) ; : %let samend = %sysfunc(mdy(12, 31, 2011)); : %let nummon = %sysfunc(intck('month', &sambeg, &samend)); : %macro overall; : %do i = 1 %to &nummon; : %let t = %sysfunc(intnx('month', &sambeg, &i, 'end')); : %months(&t, 6, 6); : %end; : %mend overall; : %overall;
|
|