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

Kopiere en hel kolonne (LØST)

Post by Jens Præst » Sat Aug 15, 2009 16:48

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 Tue Apr 06, 2010 20:59, edited 2 times in total.

Carsten P K
Posts: 76
Joined: Wed Feb 28, 2007 16:53
Location: Esbjerg

Post by Carsten P K » Sun Aug 16, 2009 8:57

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

Post by Jens Præst » Thu Oct 01, 2009 16:21

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

Who is online

Users browsing this forum: No registered users and 1 guest