I'm trying to place some SAS-genreated sparklines in a multiple-sheet workbook. But the macro fails when inserting graphs in multiple sheets. Here's a small example.
The code works when all the sheets are set to tom, but fails when trying to put graphs in dick and harry.
data graphs;
input File :$30. Sheet :$8. Cell :$4.;
length String $60;
*sheet='Tom';
string='c:\users\agriffin\g\' !! trim(file) !! '#' !! trim(sheet) !! '!' !! cell;
cards;
g8EPM2.5010.png Tom b3
g8EPM2.5020.png Tom b4
g8EPM2.5030.png Dick d7
g8EPM2.5099.png Dick d8
run;
proc sql noprint;
select string into :placement separated by ', ' from graphs;
quit;
%put &placement;
%excel_enhance(open_workbook=c:\users\agriffin\desktop\test_book.xlsx, insert_image=%quote(&placement), file_format=xlsx);
In your macro call you're not specifying the cell, is that intentional? Otherwise how do you specify the multiple destinations?
Since the macro is demo'd with multiple sheets this should be possible.
@AdrianGriffin wrote:
The cell is specified in the insert_image argument. If you run the code and do a %put &placement, you'll see how the cell and sheet is specified.
We don't have your data.
Many users here don't want to download Excel files because of virus potential, others have such things blocked by security software. Also if you give us Excel we have to create a SAS data set and due to the non-existent constraints on Excel data cells the result we end up with may not have variables of the same type (numeric or character) and even values.
Instructions here: https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-dat... will show how to turn an existing SAS data set into data step code that can be pasted into a forum code box using the {i} icon or attached as text to show exactly what you have and that we can test code against.
You can run the macro with the options MPRINT and SYMBOLGEN to see details of the code generated.
You could post the log in a code box opened with the forum {i} icon.
Ok, different question - did the demo from the paper work as expected for you?
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.