Er ThisComponent.Sheets.getByIndex(variabel) mulig????

Brugerhjælp og support til makroer i LibreOffice Basic

Moderators: Lodahl, LarsBrandi

Post Reply
Jens Præst
Posts: 26
Joined: 6. Aug 2009 22:25
Location: nakskov

Er ThisComponent.Sheets.getByIndex(variabel) mulig????

Post by Jens Præst »

Jeg har nogle data set som står i kollonne A og B fra række 3 og ned.
De skal fordeles på andre ark. Det ark som datasetet skal ind på er angivet i kolonne E

Data sættene skal indsættes i kolonne A og B i målarket. I H12 på målarket angives næste ledige række

problemet er at NyPos ikke bliver tildelt en værdi, og når jeg skal flytte datasætene så er objectvariablen ikke initaliseret.

mål arket er nr 9 (Index( 8 ) DestArk får det rigtige tal, men NyPos som skulle aflæses som 12, bliver 0
Man kan måske ikke bruge en variabel i ThisComponent.Sheets.getByIndex ????

Code: Select all

sub PlacerData
 Dim i as integer
 Dim DestArk as integer
 dim NyPos as integer
 oSheet1 = ThisComponent.Sheets.getByIndex(0)
 i=2
 do 
REM Henter mål ark
   DestArk=osheet1.getcellbyposition(4,i).GETVALUE
   Sheet2 = ThisComponent.Sheets.getByIndex(DestArk)  << ??????
REM Henter ledig række på målark
   Nypos = osheet2.getcellrangebyname("H12").GETVALUE
REM flytter datasæt
   osheet2.getcellbyposition(0,NyPos)=osheet1.getcellbyposition(0,i).GETSTRING
   osheet2.getcellbyposition(1,NyPos)=osheet1.getcellbyposition(1,i).GETSTRING
   i=i+1
 loop until osheet1.getcellbyposition(0,i).GETSTRING=""
end sub
Jens S
Posts: 1091
Joined: 25. Mar 2007 22:42

Post by Jens S »

Hej
Umiddelbart kan jeg ikke se de store fejl, men ret lige linjerne

Code: Select all

Sheet2 = ThisComponent.Sheets.getByIndex(DestArk)
osheet2.getcellbyposition(0,NyPos)=osheet1.getcellbyposition(0,i).GETSTRING
   osheet2.getcellbyposition(1,NyPos)=osheet1.getcellbyposition(1,i).GETSTRING
til

Code: Select all

oSheet2 = ThisComponent.Sheets.getByIndex(DestArk)
osheet2.getcellbyposition(0,NyPos).string=osheet1.getcellbyposition(0,i).GETSTRING
   osheet2.getcellbyposition(1,NyPos).string=osheet1.getcellbyposition(1,i).GETSTRING
og så skal der i kolonne E3 (4,i) og nedad være en værdi for hver række i kolonne A og B med indhold for at bestemme indeksnummer for arket, ellers bliver indeks = 0 (=Ark1). H12 i Ark2 til Ark10 har jeg brugt en formel =TÆLV(A1:A100) for at skifte række efter hver postering.

mvh
Jens
Jens Præst
Posts: 26
Joined: 6. Aug 2009 22:25
Location: nakskov

Post by Jens Præst »

Jeg havde godt en mistanke om at jeg havde glemt et eller andet.

Nogle gange skal der andre øjne til at se fejlen

Jeg har et indeks nummer i kolonne E for hvert data sæt i A,B.

Inden denne kodestup bliver kørt er blevet styr på hvor mange ark der er og hvilket indeks de enkelte arknavne har
Post Reply