Macros 从自动调用库运行存储的宏

Macros 从自动调用库运行存储的宏,macros,sas,Macros,Sas,我试图从自动调用库执行存储的宏时出错 我已使用以下命令将宏存储在文件夹中: libname myMacr 'C:\My Macros'; options mstored sasmstore = myMacr; %macro HelloWorld() / store; %put Hello, world!; %mend; 运行此操作后,当我查看文件夹时,我看到一个目录sasmacr.sas7bcat,正如预期的那样 接下来,我将C:\My Macros添加到我的自动调用库列表中。通过运行

我试图从自动调用库执行存储的宏时出错

我已使用以下命令将宏存储在文件夹中:

libname myMacr 'C:\My Macros';
options mstored sasmstore = myMacr;

%macro HelloWorld() / store;
  %put Hello, world!;
%mend;
运行此操作后,当我查看文件夹时,我看到一个目录
sasmacr.sas7bcat
,正如预期的那样

接下来,我将
C:\My Macros
添加到我的自动调用库列表中。通过运行

proc options option=config;
run;
找到我的配置文件。按照中给出的说明,我将
C:\My Macros
添加到自动调用列表中。关闭并重新打开SAS,我可以使用以下命令确认我的文件夹已添加到自动调用列表中:

%put %sysfunc(pathname(sasautos));
实际上,
C:\My Macros
出现在列表中。此外,我可以确认SAS看到编译的宏。当我发布:

proc catalog;
  contents catalog=sasautos.sasmacr;
quit;
我得到输出

                              Contents of Catalog SASAUTOS.SASMACR

 #    Name          Type     Level            Create Date          Modified Date    Description

 1    HELLOWORLD    MACRO       14    03/21/2017 18:44:28    03/21/2017 18:44:28
但是,当我发出
%HelloWorld(),我得到一个错误:

1    %HelloWorld();
     -
     180
WARNING: Apparent invocation of macro HELLOWORLD not resolved.

ERROR 180-322: Statement is not valid or it is used out of proper order.
我做错了什么?是否有一些我忽略的选项必须打开?要从我的
C:\my macros
文件夹中运行存储的宏,我需要做什么

-initstmt "options mstored sasmstore=sasautos;"
在配置文件中。这将在SAS初始化时发出带引号的命令


请注意,自动调用库(包含.sas代码)和编译宏库是不同的。听起来您可能混淆了这两者。这有点混淆,因为SAS会做出含糊不清的语句,例如“通常,自动调用库是包含单个文件的目录,每个文件都包含一个宏定义。在SAS 6.11及更高版本中,自动调用库也可以是SAS目录。”但是,您是正确的。SAS还描述了“存储的编译宏工具[它]将编译后的宏编译并保存在指定库中的永久目录中。”感谢您提醒我如何单独描述它们。自动调用:存储的编译宏工具: