首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >刷新宏库

刷新宏库
EN

Stack Overflow用户
提问于 2018-03-26 14:17:54
回答 2查看 281关注 0票数 4

我一直在使用宏库,以便不用首先编译宏就可以使用宏。问题是,当我更改并保存宏,然后刷新宏库的文件名时,这还不足以更新和使用新的宏吗?

有人知道为什么它在保存之前还在使用和编译旧的宏吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-26 14:40:21

第一次调用宏时,如果尚未定义宏,SAS将检查自动调用路径,并遍历那些试图查找宏的位置。

当它在自动调用库中找到宏时,它会编译宏并将编译版本保存到工作文件夹中。随后对宏的调用将导致使用宏的编译版本的SAS。

为了刷新它(如果您在编译后进行了更改),您需要将代码打开到宏并再次提交它。它将为您重新定义/重新编译它。

或者,您也可以在工作文件夹中找到包含宏编译版本的目录,并从其中删除它(通常是work.sasmacr)。

票数 4
EN

Stack Overflow用户

发布于 2018-03-26 14:53:19

罗伯特解释了你为什么会看到这种行为。

我使用以下方法轻松地重新包含已更改的宏。这假设您将一个名为FILENAMEMACROREF定义到所讨论的文件夹。

代码语言:javascript
复制
%include MACROREF(my_macro);

显然,将my_macro更改为需要编译的宏。

代码语言:javascript
复制
filename macroref "c:\temp";

%include MACROREF(MacroOne);

如果您的文件夹中满是宏(如注释中所述),则可以包含整个文件夹。

代码语言:javascript
复制
%include "%sysfunc(pathname(MACROREF))/*.sas";

这将重新编译整个文件夹。只是在该文件夹中没有任何非宏sas文件,否则您也在运行它们。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49493643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档