Kopiere en hel kolonne (LØST)

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

Kopiere en hel kolonne (LØST)

Post by Jens Præst »

Jeg er helt sikker på at jeg har læst om det, men kan ikke finde det

jeg vil have flyttet (kopieret) værdierne i kolonnerne [H;M] til [I;N]

Nærmest copy+paste indbygget i makroen

på forhånd tak
Last edited by Jens Præst on 6. Apr 2010 21:59, edited 2 times in total.
Carsten P K
Posts: 80
Joined: 28. Feb 2007 16:53
Location: Esbjerg

Post by Carsten P K »

Hvis det er indholdet af kolonnen du skal flytte markerer du denne, hvorefter du med højreknappen nede rykker til næste.
Carsten
Jens Præst
Posts: 26
Joined: 6. Aug 2009 22:25
Location: nakskov

Post by Jens Præst »

Jeg har lavet en løsning, ikke helt elegant men det virker

sub Flytraekker
Dim StatusCelle as Object,status as string
DIM i as integer, j as integer, oDuk as object, oArk as object
DIM C_1Celle as object,C_1 as long

DIM C_2Celle as Object, C_2 as long
DIM SpillerNavnCelle as object,SpillerNavn as string

oDok=ThisComponent
oArk=oDok.Sheets.getByName("Ark1")
i=4
'8 - 14
j=12
SpillerNavnCelle=oArk.getcellbyposition(6,i)'Navn på spiller i pastet rangliste
SpillerNavn=SpillerNavnCelle.getstring


'print "Opdaterer spillerliste"
StatusCelle=oArk.getcellbyposition(1,0)
On Error Resume Next
Status=StatusCelle.setstring("Kopiere Celler")
DO WHILE SpillerNavn <Do>6
C_1Celle=oArk.getcellbyposition(j,i)
C_1=C_1Celle.getvalue
j=j+1
C_2Celle=oArk.getcellbyposition(j,i)
On Error Resume Next
C_2=C_2Celle.setvalue(C_1)
j=j-2
Loop
i=i+1
j=12
SpillerNavnCelle=oArk.getcellbyposition(6,i)'Navn på spiller i pastet rangliste
SpillerNavn=SpillerNavnCelle.getstring
Loop

end sub

Jeg har lige læst følge måde at indsætte værdier på

Cell= sheet.getCellByPosition(0,0)
Cell.Value = [tal] V Cell.String = [tekst]

Jeg har bare ikke fået skrevet det ind i makroen endnu


Hvis der er nogle som har en mere elegant, og hurtigere, måde at gøre det på. Så er jeg ikke bleg for at kigge grundigt efter :)

EDITT

Efter at have læst lidt hos Andrew Pitonyak, har jeg fundet en løsning jeg er særdeles tilfreds med

Code: Select all

sub FlytCeller

DIM OCells1, oCells2
DIM orows1(),orows2()
dim Odok, oArk

oDok = ThisComponent
oArk = ThisComponent.CurrentController.Activesheet

ocells1=oark.getcellrangebyposition(16,1,27,1505)
ocells2=oark.getcellrangebyposition(18,1,29,1505)
'ocells1=oark.getcellrangebyname("Q1:AB1505")
orows1=ocells1.getdata()
'Ocells2=oark.getcellrangebyname("S1:AD1505")
on error resume next
orows2=ocells2.setdata(orows1)
end sub 
Post Reply