VBA tiettyjen rivien kopiointi

Tumpelo2015

Useita satoja sivuja sisältävästä dokumentista pitäisi kopioida sellaiset rivit, joissa esiintyy tietyt kaksi merkkijonoa. Käytännössä merkkijonot ovat perättäisillä riveillä.
Esimerkiksi:
qqqqqqqqqqq Merkkijono1: xxxxxxxxxxxxxxxx
ööööööööööööööööööö Merkkijono2: xxxxxxxxxxxx
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Merkkijono1 xxxxxxxxxxxxxxxx
Merkkijono2

Ongelmana minulla on, että vaikka em. kentät (merkkijonot) ovat sinänsä määrämuotoisia MUTTA merkkijono2: -kenttä voi olla myös tyhjä.

Tulikohan nyt riittävän epäselvästi selitettyä... Mutta kiitokset, jos apu löytyy vaikka täältä!

1

124

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Kävipä hassusti. Luulin, että olin OpenOffice -sivustolla, kun luin aloitusviestin. Sitten massamuististani löytyi tämmöinen OpenOfficessa jotenkin toimiva koodi:
      ------------------
      Sub Main

      RivitEriTiedostoon("Merkkijono1",1)

      End Sub

      Rem Muunnoslähde: https://wiki.openoffice.org/wiki/Writer/API/Text_cursor
      Rem alkuperäinen laatija: JohnV (2003)
      Rem Muunnos: RJ/2015
      Sub RivitEriTiedostoon (sMerkkijono as String, iRiviLkm as Integer)
      dim oDoc,oVC,NewDoc,filename,url,oTC,oNewDocVC,newname,newurl,n


      oDoc = ThisComponent
      oVC = oDoc.CurrentController.getViewCursor 'Create View Cursor oVC
      oVC.gotoStart(false) 'Make oVC position itself to the start of the document
      NewDoc = StarDesktop.loadComponentFromURL("private:factory/swriter","_blank",0,Array()) 'Open blank Writer doc
      oNewDocVC = NewDoc.CurrentController.getViewCursor 'Create another View Cursor for this new document

      Do
      oTC = oDoc.Text.createTextCursorByRange(oVC) 'Create Text Cursor by cloning the View Cursor (both have same position in doc)
      oVC.gotoStartOfLine(False)
      oVC.gotoEndOfLine(True) 'Valitaan uusi rivi
      'oVC.jumpToEndOfPage 'Move View Cursor oVC to EndOfPage

      oTC.gotoRange(oVC,true) 'Move Text Cursor to same location as oVC while selecting text in between (True)
      IF Instr(oTC.String,sMerkkijono) then
      Rem riviltä löytyi 1. tunnusmerkkijono
      Rem laajennetaan valintaa yhdellä rivillä
      oVC.goDown(iRiviLkm, False) 'Rivejä alaspäin, esim. 1
      oTC.gotoRange(oVC,true) 'Tekstikursorivalinta
      oNewDocVC.String = Chr(10) & oTC.String & Chr(10)
      oNewDocVC.gotoEnd(False) 'Varmistetaan, ettu tuloskursori on alimpana. Ehkä turhaa tässä?
      EndIf
      Loop While oVC.goDown(1, False) 'Katkaissee valinnan siirryttäessä seuraavalle riville?
      'NewDoc.dispose 'Close NewDoc
      Rem Tulostiedosto jää tallentamattomana auki
      End Sub 'RivitEriTiedostoon

      ------------------
      Tiedä sitten, saako tuota muokattua VBA:lla toimivaksi? Osa pitkistä riveistä voi olla poikki tämän s24-systeemin vuoksi?

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Haluaisin rakastaa sinua

      Ja olla sinulle se oikea... Rakastan sinua 💗💗💗
      Ikävä
      31
      4224
    2. Vain vasemmistolaiset rakennemuutokset pelastavat Suomen

      Kansaa on ankeutettu viimeiset 30+ vuotta porvarillisella minäminä-talouspolitiikalla, jossa tavalliselta kansalta on ot
      Maailman menoa
      134
      4037
    3. Tiedätkö mihin

      Ominaisuuksiin rakastuin sinussa?
      Ikävä
      61
      3665
    4. onko kaivattusi

      vaarallinen? :D
      Ikävä
      87
      3521
    5. Purra on kantanut vastuuta täyden kympin arvoisesti

      Luottoluokituksen lasku, ennätysvelat ja ennätystyöttömyys siitä muutamana esimerkkinä. Jatkakoon hän hyvin aloittamaans
      Maailman menoa
      32
      3504
    6. Persut huutaa taas: "kato! muslimi!"

      Persut on lyhyessä ajassa ajaneet läpi kaksi työntekijöiden oikeuksien heikennystä, joita se on aiemmin vastustanut. Pe
      Maailman menoa
      64
      3321
    7. Pieni galluppi

      Mitäs lahjaa odotat joulupukilta.
      Ikävä
      81
      2876
    8. Olisiko sinulla

      Jonossa vaihtoehtoja, ehkä
      Ikävä
      54
      2805
    9. Mitä tuntemuksia

      Rakkaasi ääni herättää?
      Ikävä
      25
      2596
    10. Korjaamo suositus

      Vahva suositus Kumpulaisen korjaamolle vanhan 5-tien varrelta! Homma pelaa ja palvelu ykköslaatuista. Mukavaa kun tuli p
      Hyrynsalmi
      14
      2304
    Aihe