Excel 如何在SAS的DDE中实现单元范围的动态化
我正在尝试使用sas中的DDE格式化周报,它会打开保存在我桌面位置的excel文件。我想格式化这些单元格的字体。我有一个总列,每次新数据进来时都需要格式化。但每次这些数据出来,“总”单元格的范围都会不同。请参考我正在写的代码Excel 如何在SAS的DDE中实现单元范围的动态化,excel,sas,dde,Excel,Sas,Dde,我正在尝试使用sas中的DDE格式化周报,它会打开保存在我桌面位置的excel文件。我想格式化这些单元格的字体。我有一个总列,每次新数据进来时都需要格式化。但每次这些数据出来,“总”单元格的范围都会不同。请参考我正在写的代码 选项noxsync noxwait filename sas2xl dde 'excel|system'; data _null_; length fid rc start stop time 8; fid=fopen('sas2xl
选项noxsync noxwait代码>
filename sas2xl dde 'excel|system';
data _null_;
length fid rc start stop time 8;
fid=fopen('sas2xl','s');
if (fid le 0) then do;
rc=system('start excel');
start=datetime();
stop=start+10;
do while (fid le 0);
fid=fopen('sas2xl','s');
time=datetime();
if (time ge stop) then fid=1;
end;
end;
rc=fclose(fid);
run;
data _null_;
file sas2xl;
put '[open(myfilepath\file.xlsx")]';
run;
**I had created a macro using call symput and i am using it here for dynamically changing the row number**
%macro xyz;
data _null_;
file sas2xl;
%do i= 1 %to 3;
put '[error(false)]';
put '[workbook.activate("Sheet1")]';
put '[select("r&&rownum&i..c1")]';
put '[format.font("Arial",true,false,false,false,1,false,false)]';
put '[column.width(0,"c1:c6",false,3)]';
%end;
run;
错误
代码不起作用,给我一个这样的错误
DDE会话未准备就绪。致命:
在执行DATA step程序时检测到不可恢复的I/O错误。在执行阶段中止
您能告诉我如何进行此以及如何识别要使用的单元格吗?嗨,cindy,数据有一个小计列,需要格式化,但此列可能随每周的数据而变化。每周都有一个总列需要格式化。这个总数所在的单元格范围每周都会改变。因此,基本上我想使这个“Total”动态化,这样我就不必每次工作时都指定整个单元格和列范围。我建议切换到ODS Tagsets.excelxp。如果你想要你的公式是动态的,你必须有某种规则,规则是什么?您会将计数放在不同的单元格中,还是可以从表中提取行数,然后从DDE中创建/插入公式?请尝试查找旧的excel宏参考手册,该手册可以追溯到VBA引入之前。这是可以在DDE中使用的命令集。嗨,Reeze,我在这里使用的公式是first.last。这样我就可以捕获最后一个“总”单元。但是,我如何将这个新专栏与第一篇和最后一篇结合使用呢。DDE中的变量