Tag: sas macro

dynamic更改SAS ODS中的工作表名称

有没有办法使用macrosdynamic更改SAS ODS中的图表名称? 在macros里面,我有下面的代码: %DO N = 1 %TO &SQLOBS; ODS TAGSETS.ExcelXP OPTIONS(SHEET_NAME = &&TABLEVAR&N EMBEDDED_TITLES = 'NO' EMBEDDED_FOOTNOTES = 'NO' PRINT_HEADER = 'CURRENT &&TABLEVAR&N AS OF &D'; PROC PRINT DATA = WORK.&&TABLEVAR&N NOOBS; RUN; %END; 基本上循环遍历一个表格数组,每个表格输出一个单独的Excel工作表。 通过调用一个macrosvariables&TABLEVAR,它应该dynamic地改变每个表的表名。 但是,我得到以下错误: 错误22-322:期待一个引用的string。 所以SAS确实parsing了macrosvariables,我可以看到表名在日志中是正确的,但是问题是它们不是引用的string。 所以我尝试了这样的引号: 选项(SHEET_NAME ='&& TABLEVAR&N' 但是,macrosvariables没有被SAS解决,所有的表都被命名为&& TABLEVAR&1,2等。 有没有解决的办法? (而且每张表是不同名称的单独表,所以我不能使用BY组。)如果不能与ODS交互,那么macros有什么好处呢?

ODS Excelmacros覆盖的SAS

这是代码 %macro ODS1 (Type=, var=, data=); ODS listing close; ODS tagsets.excelXP file = "H:\Liv_Divide\Dispersion1.xml"; proc format; value myfmt .='#N/A' other = [11.2]; run; ODS Tagsets.ExcelXP options (embedded_titles="Yes" Sheet_Name="&Type"); proc print data = &data (drop = Type) noobs style (header) = [font_style=italic font_weight=bold background=#FF9900]; var _all_ / style (data) = [background=White];` format _numeric_ myfmt.; format Date […]

在sas中编写vba代码

我想将我的VBA代码实现到我的SAS代码中,所以我可以一次完成整个过程。 我的SAS代码读取一个大的SAS表,做一些转换,最后导出到一个Excel文件(代码如下)。 我也在Excel文件中写了一些VBA代码(例如一些variables的AutoFiltering,你可以看到下面的代码)。 表格看起来像这样: ABC Var1 Var2 Var3 ——————– 1 1 1 10 15 20 1 1 2 15 20 30 1 2 1 20 30 40 1 2 2 30 40 50 2 1 1 40 50 60 2 1 2 50 60 70 2 2 1 60 70 80 ………….. ………….. 但是, 我想将我的VBA代码实现到我的SAS代码中,所以我可以一次完成整个过程。 […]