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: Thu Aug 06, 2009 21:25
Location: nakskov

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

Post by Jens Præst » Wed Aug 11, 2010 22:20

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: Sun Mar 25, 2007 21:42

Post by Jens S » Thu Aug 12, 2010 11:43

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: Thu Aug 06, 2009 21:25
Location: nakskov

Post by Jens Præst » Fri Aug 13, 2010 7:34

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

Who is online

Users browsing this forum: No registered users and 1 guest