<?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 Proc Import Excel creating a table per tab in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Proc-Import-Excel-creating-a-table-per-tab/m-p/8682#M357</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I haven't checked the rest of your code, but you have a problem with the initial file.&amp;nbsp; You don't extend the length of the tabname variable so that it can handle more than 8 characters, and you don't account for the space in the value.&amp;nbsp; Try:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data tabs ; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; length tabname $15;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input tabname $ &amp;amp;;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;Tab1&lt;/P&gt;&lt;P&gt;Tab2&lt;/P&gt;&lt;P&gt;OTHER SPECS&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run ;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 14 Sep 2011 13:36:04 GMT</pubDate>
    <dc:creator>art297</dc:creator>
    <dc:date>2011-09-14T13:36:04Z</dc:date>
    <item>
      <title>Proc Import Excel creating a table per tab</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-Import-Excel-creating-a-table-per-tab/m-p/8681#M356</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a excel file that is sent to me that I need to bring into sas.&amp;nbsp; This is what i'm currently doing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let prjdir = c:\temp ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data tabs ;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input tabname $ ;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;Tab1&lt;/P&gt;&lt;P&gt;Tab2&lt;/P&gt;&lt;P&gt;OTHER SPECS&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data _null_ ; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set tabs end=last ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symput('tabname'||strip(_n_), strip(tabname) ) ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if last then call symput('ntabs', strip(_n_) ) ;&lt;/P&gt;&lt;P&gt;run ;&lt;/P&gt;&lt;P&gt;%put &amp;amp;ntabs ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro import_tabs ;&lt;/P&gt;&lt;P&gt;%do i= 1 %to &amp;amp;ntabs ;&lt;/P&gt;&lt;P&gt;proc import out = raw_&amp;amp;&amp;amp;tabname&amp;amp;i&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; datafile= "&amp;amp;prjdir.\temp.xls" &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms = excel &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; replace &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sheet="&amp;amp;&amp;amp;tabname&amp;amp;i" ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; getnames = yes ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;run ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%end ;&lt;/P&gt;&lt;P&gt;%mend import_tabs ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;options nomprint ;&lt;/P&gt;&lt;P&gt;%import_tabs ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My problem is the last tab name gives me this error &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ERROR: File _IMEX_.'OTHER$'n.DATA does not exist.&lt;/P&gt;&lt;P&gt;ERROR: Import unsuccessful.&amp;nbsp; See SAS Log for details.&lt;/P&gt;&lt;P&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;/P&gt;&lt;P&gt;NOTE: PROCEDURE IMPORT used (Total process time):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.46 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.18 seconds&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I shorten that tab name to OtherSP it works fine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there a way to cycle through the tabs without needing to use the tab names?&amp;nbsp; I can't control the names that are used.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Sep 2011 13:27:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-Import-Excel-creating-a-table-per-tab/m-p/8681#M356</guid>
      <dc:creator>jerry898969</dc:creator>
      <dc:date>2011-09-14T13:27:45Z</dc:date>
    </item>
    <item>
      <title>Proc Import Excel creating a table per tab</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-Import-Excel-creating-a-table-per-tab/m-p/8682#M357</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I haven't checked the rest of your code, but you have a problem with the initial file.&amp;nbsp; You don't extend the length of the tabname variable so that it can handle more than 8 characters, and you don't account for the space in the value.&amp;nbsp; Try:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data tabs ; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; length tabname $15;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input tabname $ &amp;amp;;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;Tab1&lt;/P&gt;&lt;P&gt;Tab2&lt;/P&gt;&lt;P&gt;OTHER SPECS&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run ;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Sep 2011 13:36:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-Import-Excel-creating-a-table-per-tab/m-p/8682#M357</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-09-14T13:36:04Z</dc:date>
    </item>
    <item>
      <title>Proc Import Excel creating a table per tab</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-Import-Excel-creating-a-table-per-tab/m-p/8683#M358</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Art,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you so much.&amp;nbsp; That put me on the right track.&amp;nbsp; I was also using the tab name as part of my data table name which with the space doesn't work,&amp;nbsp; Instead I'm using the loop counter to add to my raw_ prefix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks so much&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Sep 2011 14:06:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-Import-Excel-creating-a-table-per-tab/m-p/8683#M358</guid>
      <dc:creator>jerry898969</dc:creator>
      <dc:date>2011-09-14T14:06:40Z</dc:date>
    </item>
    <item>
      <title>Re: Proc Import Excel creating a table per tab</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-Import-Excel-creating-a-table-per-tab/m-p/8684#M359</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can do it all in a single step too:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data tabs;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input tabname $20.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; call execute('proc import out=raw_' || strip(tabname) || ' datafile="C:\temp\' || strip(tabname) || '" dbms=excel replace; sheet="' || strip(tabname) || '"; getnames=yes; run;');&lt;/P&gt;&lt;P&gt;&amp;nbsp; cards;&lt;/P&gt;&lt;P&gt;Tab1&lt;/P&gt;&lt;P&gt;Tab2&lt;/P&gt;&lt;P&gt;OTHER SPECS&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Sep 2011 20:30:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-Import-Excel-creating-a-table-per-tab/m-p/8684#M359</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2011-09-14T20:30:20Z</dc:date>
    </item>
  </channel>
</rss>

