Heippis!
Minulla on tietokannasta tulostettu iso taulukko täynnä tekstiä. Yksi rivi on aina yksi artikkeli. Pystysuunnassa on sitten erotettu kunkin artikkelin ominaisuuksia.
Pitäisi lisätä tiettyihin pystysarakkeisiin tekstinpätkä soluissa tällä hetkellä olevien tekstin eteen. Miten tämä tapahtuu fiksuiten?
Eli esim. kaikkien sarakkeen B soluihin tulisi eteen tekstilisäys, ja sitten jatkuisi siellä nyt olevalla tavaralla.
Minulla on tietokannasta tulostettu iso taulukko täynnä tekstiä. Yksi rivi on aina yksi artikkeli. Pystysuunnassa on sitten erotettu kunkin artikkelin ominaisuuksia.
Pitäisi lisätä tiettyihin pystysarakkeisiin tekstinpätkä soluissa tällä hetkellä olevien tekstin eteen. Miten tämä tapahtuu fiksuiten?
Eli esim. kaikkien sarakkeen B soluihin tulisi eteen tekstilisäys, ja sitten jatkuisi siellä nyt olevalla tavaralla.
Vastaukset 4
Vanhimmat
Toistuvat tehtävät on helpointa hoitaa makroilla.
http://wiki.services.openoffice.org/wiki/Documentation/OOoAuthors_User_Manual/Getting_Started/Creating_a_macro
Voisit vaikka aloittaa tällaisella:
Sub Main
lisaa_alkuun("tekstin lisäys alkuun")
End Sub
sub lisaa_alkuun (t as Variant)
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
ocell=ThisComponent.CurrentSelection
entinen = oCell.getString()
args1(0).Name = "StringName"
args1(0).Value = t " " entinen
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args1())
end sub
eli tuo lisää valitun solun tekstin eteen tekstin joka on Main-subin argumenttina, tässä tapauksessa "tekstin lisäys alkuun" kun painaa makroeditorin nappia "Suorita BASIC".
Mutta tekeekö tuo kaikkiin 1000 soluun kerralla, vai pitääkö jokainen suorittaa erikseen? Voisiko tietoa hakea solun alkuun jotenkin toisesta taulusta esimerkiksi?
>...vai pitääkö jokainen suorittaa erikseen?
Tuo laittaa vain yhteen soluun ja oli tarkoitettu vain esimerkiksi mistä voisit alkaa kehitellä omaa ratkaisuasi.
Jos muutat sen tällaiseksi,
sub lisaa_alkuun (t as Variant)
dim oDocument as object
oDocument = ThisComponent
oDesktop = createUnoService("com.sun.star.frame.Desktop")
oSelectedCells = oDocument.CurrentSelection
oActiveCells = oSelectedCells.RangeAddress
oSheets = oDocument.Sheets
oSheet = oSheets.getByIndex(oActiveCells.Sheet)
rem ----------------------------------------------------------------------
For Rivi = oActiveCells.StartRow To oActiveCells.EndRow
For Sarake = oActiveCells.StartColumn To oActiveCells.EndColumn
oCell = oSheet.getCellByPosition(Sarake,Rivi)
entinen = oCell.getString()
oCell.setString(t " " entinen)
Next
Next
end sub
, niin tekstin lisäys tulee kaikkiin soluihin jotka sinulla on maalattuna aktiiivisella
välilehdellä.
>Voisiko tietoa hakea solun alkuun...
Makrolla voi tehdä ihan kaiken minkä näppäimistöllä ja hiirelläkin mutta nyt saa joku toinen jatkaa. Mun tarttee mennä maate että jaksaa huomennakin. ;)
Avustasi!