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

113

    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. Maatalous- ja yritystuet pois, työeläkevaroilla valtion velka pois

      Suomi saadaan eheytettyä kädenkäänteessä, kun uskalletaan tehdä rohkeita ratkaisuja. Maatalous- ja yritystuet ovat hait
      Maailman menoa
      140
      3909
    2. Hei! Halusin vain kertoa.

      En tiedä luetko näitä, mutta näimme n.4vk sitten, vaihdoimme muutaman sanan ja tunsin edelleen kipinän välillämme. Katso
      Tunteet
      9
      3312
    3. Riikka on siis suomalaisille velkaa 84 mrd

      Jos kauhukabinetti istuu vaalikauden loppuun. Keskimäärin yli 20 miljardia uutta velkaa rikkaiden veronalennuksiin jokai
      Maailman menoa
      42
      2913
    4. Miksi ikävä ei helpotu vuosien jälkeenkään?

      Tänään olin ensimmäistä kertaa sinun lähtösi jälkeen tilassa, jossa vuosia sitten nähtiin ensimmäistä kerta. Ollessani
      Rakkaus ja rakastaminen
      12
      2812
    5. Sanna on suomalaisille siis velkaa 24 mrd euroa

      Muistanette vielä kuinka Italian remonttirahoja perusteltiin sillä, että italialaiset ostaa suomalaisilta paidatkin pääl
      Maailman menoa
      138
      2488
    6. Teboili alasajo on alkanut

      Niinhän siinä kävi että teebboili loppuu...
      Suomussalmi
      50
      2124
    7. "Sanna Marinin kirja floppasi", kertoo eräs median otsikko

      "Miljardien tappio - Sanna Marin vaikenee", kertoo toinen otsikko. Marin ei siis siinä kirjassaan kerro sanallakaan For
      Maailman menoa
      95
      1296
    8. Tiesitkö? Suomessa lääkäri voi toimia ammatissaan, vaikka hän olisi seksuaalirikollinen

      Järkyttävää… Motin mukaan Suomessa lääkäri voi toimia ammatissaan, vaikka hän olisi yksityiselämässään syyllistynyt es
      Maailman menoa
      63
      1274
    9. Luotathan siihen tunteeseen, joka välillämme on?

      Uskothan myös, että se kestää tämän? Kaipaan sinua valtavasti. Vielä tehdään yhdessä tästä jotain ihmeellistä ja kaunist
      Ikävä
      15
      1234
    10. Oot kyl rakas

      Et tiiäkkään miten suuri vaikutus sulla on mun jaksamiseen niin töissä, kun vapaallakin❤️. Oot täysin korvaamaton. En t
      Ikävä
      36
      1139
    Aihe