首页 > 解决方案 > 如何在没有定义的情况下使宏可调用

问题描述

目前我有一些非常有用的宏,但我需要在每个程序中定义然后调用它们。有没有一种方法可以为自己创建一个宏库,我可以参考而无需在同一个程序中定义它们,也许需要能够从特定的库中调用它们。

目前:

%macro GenericMacro1(&File);
....
%mend;

%GenericMacro1(File1);
%GenericMacro1(File2);

想:

libname MyMacros "C://.....";

%MyMacros.GenericMacro1(File1);
%MyMacros.GenericMacro2(File2);

标签: sassas-macro

解决方案


请参阅SASAUTOS 文档

标识包含包含 SAS 宏定义的库成员的位置。位置可以是 SAS 文件引用或用引号括起来的特定于主机的位置名称。每个成员都包含一个 SAS 宏定义。

相关选项是MAUTOSOURCE启用自动呼叫功能。

您还可以在 SAS 会话使用中使用存储的预编译宏

options mstored sasmstore=mylib;

文档警告说,在运行 SAS 会话期间,编译宏的原始源代码并不总是可提取的

注意: 保存您的宏源代码。


推荐阅读