Kopiere en hel kolonne (LØST)

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

Kopiere en hel kolonne (LØST)

Indlæg af Jens Præst » 15. aug 2009 17: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
Senest rettet af Jens Præst 6. apr 2010 21:59, rettet i alt 2 gange.

Carsten P K
Indlæg: 76
Tilmeldt: 28. feb 2007 16:53
Geografisk sted: Esbjerg

Indlæg af Carsten P K » 16. aug 2009 09: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
Indlæg: 26
Tilmeldt: 6. aug 2009 22:25
Geografisk sted: nakskov

Indlæg af Jens Præst » 1. okt 2009 17: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

Kode: Vælg alt

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 

Besvar

Hvem er online

Brugere der viser dette forum: Ingen og 2 gæster