<?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 Re: Using a single quote in macro parameter in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Using-a-single-quote-in-macro-parameter/m-p/729037#M226846</link>
    <description>&lt;P&gt;I don't understand what you are asking for.&lt;/P&gt;
&lt;P&gt;If you could potentially have unbalanced quotes (or other potentially special characters) in a macro variable and you want to display it then add some macro quoting.&amp;nbsp; %superq() is good for this.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%put The value of TEXT1 is : %superq(text1) ;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;If users have passed in unbalanced quotes by adding actual quotes around the value use %Qsysfunc(dequote()) to remove them and return a macro quoted value.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;201   %macro test(parm1);
202   %local var1;
203   %let var1=%qsysfunc(dequote(&amp;amp;parm1));
204   %put PARM1=%superq(parm1);
205   %put VAR1=%superq(var1);
206   %mend test;
207
208   %test("I don't know");
PARM1="I don't know"
VAR1=I don't know
&lt;/PRE&gt;</description>
    <pubDate>Thu, 25 Mar 2021 12:57:47 GMT</pubDate>
    <dc:creator>Tom</dc:creator>
    <dc:date>2021-03-25T12:57:47Z</dc:date>
    <item>
      <title>Using a single quote in macro parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-a-single-quote-in-macro-parameter/m-p/729030#M226843</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;If someone what to use an apostrophe in a macro parameter, he has at least 3 ways to specify it in the macro call&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro demo (text1);
%put text1= &amp;amp;text1.;
%mend demo;

%demo(%str(I don%'t know));&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;or&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro demo (text1);
%let text1=%qsysfunc(dequote(&amp;amp;text1.));
%put text1= &amp;amp;text1.;
%mend demo;

%demo("I don't know");
%demo('I don''t know');&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Now, assuming that we want to use two apostrophes (which resolve to one) in the macro parameter, what should be done to display the macro parameter value?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Expected result:&lt;/P&gt;&lt;PRE class="sasLog"&gt;text1= I don't know&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I could think of this solution. Would you have any other suggestion?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro demo (text1);

data _null_;   
    call symputx('text1',tranwrd(dequote("&amp;amp;text1."),"''","'"),'L');
run;

%put text1= %bquote(&amp;amp;text1.);

%mend demo;

%demo(I don''t know);&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Mar 2021 12:30:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-a-single-quote-in-macro-parameter/m-p/729030#M226843</guid>
      <dc:creator>xxformat_com</dc:creator>
      <dc:date>2021-03-25T12:30:27Z</dc:date>
    </item>
    <item>
      <title>Re: Using a single quote in macro parameter</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-a-single-quote-in-macro-parameter/m-p/729037#M226846</link>
      <description>&lt;P&gt;I don't understand what you are asking for.&lt;/P&gt;
&lt;P&gt;If you could potentially have unbalanced quotes (or other potentially special characters) in a macro variable and you want to display it then add some macro quoting.&amp;nbsp; %superq() is good for this.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%put The value of TEXT1 is : %superq(text1) ;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;If users have passed in unbalanced quotes by adding actual quotes around the value use %Qsysfunc(dequote()) to remove them and return a macro quoted value.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;201   %macro test(parm1);
202   %local var1;
203   %let var1=%qsysfunc(dequote(&amp;amp;parm1));
204   %put PARM1=%superq(parm1);
205   %put VAR1=%superq(var1);
206   %mend test;
207
208   %test("I don't know");
PARM1="I don't know"
VAR1=I don't know
&lt;/PRE&gt;</description>
      <pubDate>Thu, 25 Mar 2021 12:57:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-a-single-quote-in-macro-parameter/m-p/729037#M226846</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2021-03-25T12:57:47Z</dc:date>
    </item>
  </channel>
</rss>

