Page 1 of 1

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

Posted: 11. Aug 2010 23:20
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

Posted: 12. Aug 2010 12:43
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

Posted: 13. Aug 2010 08:34
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