<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Immediate substitution in MACRO parameter in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117903#M24300</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;how do I get parameter LIB in macro definition :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;%MACRO myMacro(LIB&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: 10pt; font-family: Courier New;"&gt;%scan&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;(&amp;amp;SYSDSN,&lt;/SPAN&gt;&lt;STRONG style=": ; color: #008080; font-size: 10pt; font-family: Courier New;"&gt;1&lt;/STRONG&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;));&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;%mend;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;to be substituted immediately at macro invocation and not later during macro execution?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;Thanks.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;PG&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 16 May 2012 18:46:08 GMT</pubDate>
    <dc:creator>PGStats</dc:creator>
    <dc:date>2012-05-16T18:46:08Z</dc:date>
    <item>
      <title>Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117903#M24300</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;how do I get parameter LIB in macro definition :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;%MACRO myMacro(LIB&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: 10pt; font-family: Courier New;"&gt;%scan&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;(&amp;amp;SYSDSN,&lt;/SPAN&gt;&lt;STRONG style=": ; color: #008080; font-size: 10pt; font-family: Courier New;"&gt;1&lt;/STRONG&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;));&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;%mend;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;to be substituted immediately at macro invocation and not later during macro execution?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;Thanks.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;PG&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 May 2012 18:46:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117903#M24300</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2012-05-16T18:46:08Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117904#M24301</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Depending on what is really needed, this approach might help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When the program knows the right value to use, have it define a new macro.&amp;nbsp; Use FILE/PUT/%INCLUDE to define:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro myMacro2 (current_value=value_to_use_NOW);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %myMacro (LIB=&amp;amp;current_value)&lt;/P&gt;&lt;P&gt;%mend myMacro2;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then invoke %myMacro2 instead of %myMacro.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 May 2012 19:46:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117904#M24301</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-05-16T19:46:19Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117905#M24302</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="font-family: Consolas, Courier New; font-size: 90%; line-height: 1.1;"&gt;&lt;SPAN&gt;We can do an assignment in order to immediately evaluate a macro expression, meaning that it is easy to break the macro var, SYSDSN, being automatically updated. But macro compiler seems to keep the default values of the parameters as they are (ie, not resolved) -- which I think makes sense. hth&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: Consolas, Courier New; font-size: 90%; line-height: 1.1;"&gt;&lt;SPAN&gt;&amp;nbsp; %&lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;*-- macro definition when sysdsn has WORK ONE --*;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; one; &lt;/SPAN&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;%let&lt;/SPAN&gt;&lt;SPAN&gt; default = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;%scan&lt;/SPAN&gt;&lt;SPAN&gt;(&amp;amp;sysdsn, 2);&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; test(mem=&amp;amp;default);&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;%put&lt;/SPAN&gt;&lt;SPAN&gt; mem=&amp;amp;mem;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; test;&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; %&lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;*-- check --*;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; %&lt;/SPAN&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;SPAN&gt;test&lt;/SPAN&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;/* ONE */&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; two; &lt;/SPAN&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; %&lt;/SPAN&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;SPAN&gt;test&lt;/SPAN&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;/* ONE -- success! */&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; %&lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;*-- but the macro arg^s default mem value is still &amp;amp;default --*;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;%let&lt;/SPAN&gt;&lt;SPAN&gt; default = CRAZY;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; %&lt;/SPAN&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;SPAN&gt;test&lt;/SPAN&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;/* CRAZY */&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; %&lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;*-- what happens if we remove the mvar, default --*;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;%symdel&lt;/SPAN&gt;&lt;SPAN&gt; default;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; %&lt;/SPAN&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;SPAN&gt;test&lt;/SPAN&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;/* &lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #008000;"&gt;&amp;nbsp; WARNING: Apparent symbolic reference DEFAULT not resolved.&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #008000;"&gt;&amp;nbsp; mem=&amp;amp;default&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #008000;"&gt;&amp;nbsp; */&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 May 2012 19:53:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117905#M24302</guid>
      <dc:creator>chang_y_chung_hotmail_com</dc:creator>
      <dc:date>2012-05-16T19:53:35Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117906#M24303</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Use %unquote();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;%let x=yvar;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;%macro my(p=%unquote(%scan(&amp;amp;x,1)));&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;%put p=&amp;amp;p;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;%mend;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;218&amp;nbsp; %my;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;p=yvar&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;219&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;220&amp;nbsp; %let x=xvar;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;221&amp;nbsp; %my;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;p=yvar&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 May 2012 19:56:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117906#M24303</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-05-16T19:56:22Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117907#M24304</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for all the suggestions. The only thing that seems to do what I want inspired by Astounding is to expand the macro parameter before it gets changed into a local variable. In wat follows, I wanted to get the word "better"&amp;nbsp; :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;273&amp;nbsp; %let words=pretty awful;&lt;/P&gt;&lt;P&gt;274&lt;/P&gt;&lt;P&gt;275&amp;nbsp; %macro secondWord(w=%scan(&amp;amp;words,2));&lt;/P&gt;&lt;P&gt;276&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let words=pretty bad;&lt;/P&gt;&lt;P&gt;277&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put &amp;amp;w;&lt;/P&gt;&lt;P&gt;278&amp;nbsp; %mend secondWord;&lt;/P&gt;&lt;P&gt;279&lt;/P&gt;&lt;P&gt;280&amp;nbsp; %let words=much better;&lt;/P&gt;&lt;P&gt;281&lt;/P&gt;&lt;P&gt;282&amp;nbsp; %secondWord;&lt;/P&gt;&lt;P&gt;bad&lt;/P&gt;&lt;P&gt;283&lt;/P&gt;&lt;P&gt;284&amp;nbsp; %let words=pretty awful;&lt;/P&gt;&lt;P&gt;285&lt;/P&gt;&lt;P&gt;286&amp;nbsp; %macro secondWord(w=%unquote(%scan(&amp;amp;words,2)));&lt;/P&gt;&lt;P&gt;287&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let words=pretty bad;&lt;/P&gt;&lt;P&gt;288&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put &amp;amp;w;&lt;/P&gt;&lt;P&gt;289&amp;nbsp; %mend secondWord;&lt;/P&gt;&lt;P&gt;290&lt;/P&gt;&lt;P&gt;291&amp;nbsp; %let words=much better;&lt;/P&gt;&lt;P&gt;292&lt;/P&gt;&lt;P&gt;293&amp;nbsp; %secondWord;&lt;/P&gt;&lt;P&gt;bad&lt;/P&gt;&lt;P&gt;294&lt;/P&gt;&lt;P&gt;295&amp;nbsp; %let words=pretty awful;&lt;/P&gt;&lt;P&gt;296&lt;/P&gt;&lt;P&gt;297&amp;nbsp; %macro secondWord(w=%scan(%unquote(&amp;amp;words),2));&lt;/P&gt;&lt;P&gt;298&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let words=pretty bad;&lt;/P&gt;&lt;P&gt;299&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put &amp;amp;w;&lt;/P&gt;&lt;P&gt;300&amp;nbsp; %mend secondWord;&lt;/P&gt;&lt;P&gt;301&lt;/P&gt;&lt;P&gt;302&amp;nbsp; %let words=much better;&lt;/P&gt;&lt;P&gt;303&lt;/P&gt;&lt;P&gt;304&amp;nbsp; %secondWord;&lt;/P&gt;&lt;P&gt;bad&lt;/P&gt;&lt;P&gt;305&lt;/P&gt;&lt;P&gt;306&amp;nbsp; %let words=pretty awful;&lt;/P&gt;&lt;P&gt;307&lt;/P&gt;&lt;P&gt;308&amp;nbsp; %macro secondWord(w=%scan(&amp;amp;words,2));&lt;/P&gt;&lt;P&gt;309&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let myW=&amp;amp;w;&lt;/P&gt;&lt;P&gt;310&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let words=pretty bad;&lt;/P&gt;&lt;P&gt;311&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put &amp;amp;myW;&lt;/P&gt;&lt;P&gt;312&amp;nbsp; %mend secondWord;&lt;/P&gt;&lt;P&gt;313&lt;/P&gt;&lt;P&gt;314&amp;nbsp; %let words=much better;&lt;/P&gt;&lt;P&gt;315&lt;/P&gt;&lt;P&gt;316&amp;nbsp; %secondWord;&lt;/P&gt;&lt;P&gt;better&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 May 2012 21:08:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117907#M24304</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2012-05-16T21:08:28Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117908#M24305</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are you sure your session is ok?&amp;nbsp; Perhaps you should restart.&amp;nbsp; The %UNQUOTE() function works for me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;299&amp;nbsp;&amp;nbsp; %let words=pretty awful;&lt;/P&gt;&lt;P&gt;300&lt;/P&gt;&lt;P&gt;301&amp;nbsp;&amp;nbsp; %macro secondWord(w=%unquote(%scan(&amp;amp;words,2)));&lt;/P&gt;&lt;P&gt;302&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let words=pretty bad;&lt;/P&gt;&lt;P&gt;303&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put &amp;amp;w;&lt;/P&gt;&lt;P&gt;304&amp;nbsp;&amp;nbsp; %mend secondWord;&lt;/P&gt;&lt;P&gt;305&lt;/P&gt;&lt;P&gt;306&amp;nbsp;&amp;nbsp; %let words=much better;&lt;/P&gt;&lt;P&gt;307&lt;/P&gt;&lt;P&gt;308&amp;nbsp;&amp;nbsp; %secondWord;&lt;/P&gt;&lt;P&gt;awful&lt;/P&gt;&lt;P&gt;309&amp;nbsp; /* bad */&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 May 2012 21:45:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117908#M24305</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-05-16T21:45:16Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117909#M24306</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Now, that's very strange. Fresh start :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: AUTOEXEC processing completed.&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp; %let words=pretty awful;&lt;BR /&gt;2&lt;BR /&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp; %macro secondWord(w=%unquote(%scan(&amp;amp;words,2)));&lt;BR /&gt;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let words=pretty bad;&lt;BR /&gt;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put &amp;amp;w;&lt;BR /&gt;6&amp;nbsp;&amp;nbsp;&amp;nbsp; %mend secondWord;&lt;BR /&gt;7&lt;BR /&gt;8&amp;nbsp;&amp;nbsp;&amp;nbsp; %let words=much better;&lt;BR /&gt;9&lt;BR /&gt;10&amp;nbsp;&amp;nbsp; %secondWord;&lt;BR /&gt;bad&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm baffled! and worried...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 May 2012 22:00:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117909#M24306</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2012-05-16T22:00:36Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117910#M24307</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What version of SAS?&amp;nbsp; I get "awful" on both 9.2 and 8.2 on Unix.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 May 2012 22:50:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117910#M24307</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-05-16T22:50:49Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117911#M24308</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I run my test on version 9.3 TS1M0, 32 bits on Windows 7.&amp;nbsp; - PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 May 2012 00:02:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117911#M24308</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2012-05-17T00:02:32Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117912#M24309</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;PGStats,&lt;/P&gt;&lt;P&gt;Very interesting .It looks like SAS resolve &amp;amp;w is not at the beginning of Macro , but at the very position it is appeared . If you change the order of %let and %put ,you will get the right answer. I am also confused and astounded.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&amp;nbsp;&amp;nbsp;

&amp;nbsp;&amp;nbsp; %let words=pretty awful;

&amp;nbsp;&amp;nbsp; %macro secondWord(w=%qscan(&amp;amp;words,2) );
&amp;nbsp;&amp;nbsp;&amp;nbsp; %put Before: &amp;amp;w; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; %let words=pretty bad;
&amp;nbsp;&amp;nbsp;&amp;nbsp; %put After: &amp;amp;w;
&amp;nbsp;&amp;nbsp;&amp;nbsp; %mend secondWord;

&amp;nbsp;&amp;nbsp;&amp;nbsp; %let words=much better;
&amp;nbsp;&amp;nbsp; %secondWord()


&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: xia keshan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 May 2012 06:50:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117912#M24309</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-05-17T06:50:03Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117913#M24310</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What happens if you print the value of W using %SUPERQ?&amp;nbsp; I do not have 9.3 to test with.&lt;/P&gt;&lt;P&gt;Here is what I get with 8.2 or 9.2 on Unix or Windows.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;12&amp;nbsp;&amp;nbsp; %let words=pretty awful;&lt;/P&gt;&lt;P&gt;13&lt;/P&gt;&lt;P&gt;14&amp;nbsp;&amp;nbsp;&amp;nbsp; %macro secondWord(w=%unquote(%scan(&amp;amp;words,2)));&lt;/P&gt;&lt;P&gt;15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put %superq(w);&lt;/P&gt;&lt;P&gt;16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let words=pretty bad;&lt;/P&gt;&lt;P&gt;17&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put &amp;amp;w;&lt;/P&gt;&lt;P&gt;18&amp;nbsp;&amp;nbsp;&amp;nbsp; %mend secondWord;&lt;/P&gt;&lt;P&gt;19&lt;/P&gt;&lt;P&gt;20&amp;nbsp;&amp;nbsp;&amp;nbsp; %let words=much better;&lt;/P&gt;&lt;P&gt;21&lt;/P&gt;&lt;P&gt;22&amp;nbsp;&amp;nbsp;&amp;nbsp; %secondWord;&lt;/P&gt;&lt;P&gt;%unquote(awful)&lt;/P&gt;&lt;P&gt;awful&lt;/P&gt;&lt;P&gt;23&amp;nbsp;&amp;nbsp; /*bad*/&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 May 2012 10:57:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117913#M24310</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-05-17T10:57:11Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117914#M24311</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Tom,&lt;/P&gt;&lt;P&gt;I ran you code on pc 9.3.&lt;/P&gt;&lt;P&gt;%let words=pretty awful;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %macro secondWord(w=%unquote(%scan(&amp;amp;words,2)));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put %superq(w);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let words=pretty bad;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put &amp;amp;w;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %mend secondWord;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %let words=much better;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %secondWord;&lt;/P&gt;&lt;P&gt;%unquote(awful)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;log file:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;13&amp;nbsp;&amp;nbsp; %let words=pretty awful;&lt;/P&gt;&lt;P&gt;14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %macro secondWord(w=%unquote(%scan(&amp;amp;words,2)));&lt;/P&gt;&lt;P&gt;15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put %superq(w);&lt;/P&gt;&lt;P&gt;16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let words=pretty bad;&lt;/P&gt;&lt;P&gt;17&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put &amp;amp;w;&lt;/P&gt;&lt;P&gt;18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %mend secondWord;&lt;/P&gt;&lt;P&gt;19&lt;/P&gt;&lt;P&gt;20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let words=much better;&lt;/P&gt;&lt;P&gt;21&lt;/P&gt;&lt;P&gt;22&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %secondWord;&lt;/P&gt;&lt;P&gt;%unquote(%scan(&amp;amp;words,2))&lt;/P&gt;&lt;P&gt;bad&lt;/P&gt;&lt;P&gt;23&amp;nbsp;&amp;nbsp; %unquote(awful)&lt;/P&gt;&lt;P&gt;NOTE: Line generated by the macro function "SCAN".&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; awful&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -----&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 180&lt;/P&gt;&lt;P&gt;ERROR 180-322: Statement is not valid or it is used out of proper order.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 May 2012 12:40:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117914#M24311</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-05-17T12:40:40Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117915#M24312</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;So in 9.3 the %SCAN() function it NOT evaluated during the compilation.&lt;/P&gt;&lt;P&gt;The last line was part of the output and not part of the program, so that is what generated the errors.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 May 2012 12:54:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117915#M24312</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-05-17T12:54:11Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117916#M24313</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try this version on SAS 9.3.&amp;nbsp; This time calling the DEQUOTE() function using %SYSFUNC().&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let words=pretty awful;&lt;/P&gt;&lt;P&gt;%macro secondWord(w=%sysfunc(dequote("%scan(&amp;amp;words,2)")));&lt;/P&gt;&lt;P&gt;&amp;nbsp; %put %superq(w);&lt;/P&gt;&lt;P&gt;&amp;nbsp; %let words=pretty bad;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %put &amp;amp;w;&lt;/P&gt;&lt;P&gt;%mend secondWord;&lt;/P&gt;&lt;P&gt;%let words=much better;&lt;/P&gt;&lt;P&gt;%secondWord;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 May 2012 12:58:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117916#M24313</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-05-17T12:58:18Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117917#M24314</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Again, depends on what is really needed, but you might try defining the original macro using the NAME, rather than the VALUE of a macro variable.&amp;nbsp; For example, at the right spot outside of every macro definition:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let dataset_to_use = %scan(&amp;amp;sysdsn,1);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then the macro definition begins with:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro MyMacro (LIB=dataset_to_use);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then inside the macro, reference &amp;amp;&amp;amp;&amp;amp;lib&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 May 2012 14:16:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117917#M24314</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-05-17T14:16:34Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117918#M24315</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Tom for digging deeper into this. Here is the LOG :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: AUTOEXEC processing completed.&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp; %let words=pretty awful;&lt;BR /&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp; %macro secondWord(w=%sysfunc(dequote("%scan(&amp;amp;words,2)")));&lt;BR /&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put %superq(w);&lt;BR /&gt;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let words=pretty bad;&lt;BR /&gt;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put &amp;amp;w;&lt;BR /&gt;6&amp;nbsp;&amp;nbsp;&amp;nbsp; %mend secondWord;&lt;BR /&gt;7&amp;nbsp;&amp;nbsp;&amp;nbsp; %let words=much better;&lt;BR /&gt;8&amp;nbsp;&amp;nbsp;&amp;nbsp; %secondWord;&lt;BR /&gt;%sysfunc(dequote("%scan(&amp;amp;words,2)"))&lt;BR /&gt;bad&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Seems like nothing is ever processed in the macro parameter default values.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 May 2012 14:42:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117918#M24315</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2012-05-17T14:42:39Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117919#M24316</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;OK, third approach.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Why have a parameter at all?&amp;nbsp; Just keep the creation of &amp;amp;LIB out of the macro entirely.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If this %MyMacro is part of a library of macros, you can store more than the definition of the macro.&amp;nbsp; Within mymacro.sas, store the definition of the macro, WITHOUT a LIB parameter.&amp;nbsp; Also in the same mymacro.sas file but outside of the macro definition, store a DATA step (or other code) that assigns the proper value to &amp;amp;LIB and makes it a global variable.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Whether you subsequently define %MyMacro using %INCLUDE or via an autocall invocation, the value of &amp;amp;LIB will get set at that time but will not get reset later.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you take this approach, you are probably better served by changing the name of the macro variable.&amp;nbsp; &amp;amp;LIB is common enough that it might conflict with other macros.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good luck.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 May 2012 15:44:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117919#M24316</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-05-17T15:44:51Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117920#M24317</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here is the response from SAS Technical support about why 9.3 is different.&lt;/P&gt;&lt;P&gt;Apparently it has been broken for the last 30 years!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __jive_macro_name="quote" class="jive_text_macro jive_macro_quote" modifiedtitle="true"&gt;
&lt;P&gt;Starting in SAS V6.08 and continuing through SAS V9.2, the SAS Macro Facility was erroneously fully evaluating expressions at macro compilation time which defined the default value of keyword parameters.&amp;nbsp; This was a change from SAS V5.18.&amp;nbsp; At macro compilation time, the SAS Macro Facility should have only been evaluating %STR and %NRSTR quoting functions used in the default value expressions of keyword parameters.&amp;nbsp; The correct time for full resolution of default keyword parameter expressions is at macro execution time.&amp;nbsp; The change seen in SAS V9.3 is due to the correction to SAS Macro Facility to match the correct behavior of SAS V5.18.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Thank You,&lt;/P&gt;
&lt;P&gt;Russ Tyndall&lt;/P&gt;
&lt;P&gt;SAS Technical Support Analyst&lt;/P&gt;
&lt;P&gt;SAS Certified Advanced Programmer for SAS 9&lt;/P&gt;
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 May 2012 17:19:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117920#M24317</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-05-17T17:19:37Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117921#M24318</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you, Tom!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I wonder how much code was written since V5.18 that rely on that &lt;EM&gt;erroneous behaviour&lt;/EM&gt;! I think I like the fixed behaviour (very late binding) better than the erroneous behaviour (very early binding) but what I was naively expecting was binding at invocation time, since invocation is when parameters are normally bound to their values. But that was too simple.&lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 May 2012 19:57:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117921#M24318</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2012-05-17T19:57:57Z</dc:date>
    </item>
    <item>
      <title>Re: Immediate substitution in MACRO parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117922#M24319</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Astounding for persevering! What I finally did in light of this discussion is something like :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;%MACRO myMacro(LIB&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; color: #0000ff; font-family: Courier New;"&gt;%scan&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;(&amp;amp;SYSDSN,&lt;/SPAN&gt;&lt;STRONG style="font-size: 10pt; color: #008080; font-family: Courier New;"&gt;1&lt;/STRONG&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;));&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;%let _lib=&amp;amp;LIB;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;%let _SYSDSN=&amp;amp;SYSDSN;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;%let SYSDSN=&amp;amp;_SYSDSN;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;%mend;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;and I use _lib inside the macro. This way I get parameter binding at invocation time and I don't change the name of the last dataset with some intermediate dataset created inside the macro. Seems to work.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;PG&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 May 2012 20:18:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Immediate-substitution-in-MACRO-parameter/m-p/117922#M24319</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2012-05-17T20:18:01Z</dc:date>
    </item>
  </channel>
</rss>

