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

Brugerhjælp og support til makroer i LibreOffice Basic

Redaktører: Lodahl, LarsBrandi

Besvar
Jens Præst
Indlæg: 26
Tilmeldt: 6. aug 2009 22:25
Geografisk sted: nakskov

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

Indlæg af Jens Præst » 11. aug 2010 23: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 ????

Kode: Vælg alt

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
Indlæg: 1091
Tilmeldt: 25. mar 2007 22:42

Indlæg af Jens S » 12. aug 2010 12:43

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

Kode: Vælg alt

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

Kode: Vælg alt

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
Indlæg: 26
Tilmeldt: 6. aug 2009 22:25
Geografisk sted: nakskov

Indlæg af Jens Præst » 13. aug 2010 08: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

Besvar

Hvem er online

Brugere der viser dette forum: Ingen og 1 gæst