Join Now

Brug af DDE til at skrive til celler med mellemrum imellem

by New Contributor PeterRahbek on ‎03-19-2015 11:13 AM (292 Views)

Hej Alle

Er i gang med at automatisere en rapport i Excel ved hjælp af DDE.

Til dette har jeg brug for, at den samme tabel i SAS kan skrives til to forskellige steder i Excel-arket.

Dvs. opdele tabellen med f.eks. en rækkes mellemrum imellem således, at den første række i min sas tabel skrives til r1c1 og de efterfølgende rækker i tabellen skrives til r3c1:r10c1.

Er med på hvordan det fungerer, hvis hele tabellen samlet skal overføres til Excel, men altså ikke hvordan ens SAS tabel kan opdeles i Excel-arket.

Hvis hele tabellen skal samles skriver jeg det således:

"

proc sql noprint;

    select distinct catx('','"',name,'"n') into: list separated by ' '

    from sashelp.vcolumn

    where libname = "WORK"

    and memname = " TEST"

    and name not in ("X" "_NAME_")

    order by name

    ;

quit;

*%put &list;

filename test dde "excelArk1!r1c1:r10c10";

data _null_;

   file test;

   set test;

   put &list.;

run;

"

Håber i kan hjælpe.

Vh. Peter

Comments
by Super Contributor
on ‎03-20-2015 05:04 AM

Hej Peter,

Jeg tror at dit problem kan løses ved blot at have flere filename statements. Jeg forsøgte lige med følgene programstump, som placere data forskellige steder i arket.

filename test1 dde "excel|Sheet1!r1c1:r10c3" notab;;
filename test2 dde "excel|Sheet1!r1c7:r10c10" notab;
data mydata;
  array abc{6} (1 2 3 4 5 6);
 
  file test1 dlm='09'x  dsd;;
  do i= 1 to 10;
    do j=1 to 3;
   put abc @@;
end;
put;
  end;

  file test2 dlm='09'x  dsd;;
  do i= 1 to 10;
    do j=1 to 3;
   put abc @@;
end;
put;
  end;
run;

by Occasional Contributor jmic_nyk
on ‎03-20-2015 06:59 AM

Man kunne også danne nogle "Named ranges" (aner ikke hvad det hedder på dansk) i excelarket. Dem kan man nemlig se som dataset når man tager fat i EXCEL mappen med et libname.

Og så er det jo lige ud af landevejen at fylde data i.

Og så slipper du for at have dit EXCEL ark åbent i forbindelse med opdatering.