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

131

    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. Nasima löi Jussille luun kurkkuun

      Nasima kertoi ettei Jussi sovi puhemieheksi, koska sallii rasismin. Mihin toimiin perussuomalaiset ryhtyvät? Kuka nouse
      Maailman menoa
      468
      8432
    2. Razmyar on säälittävä - puhemiehellä ei ole mitään syytä ottaa kantaa tähän "silmäkohuun"

      jonka toimittajat sai aikaan. Asia ei kuulu puhemiehelle millään lailla. Razmyar haluaa taas vaan huomiota. Mutta jos r
      Maailman menoa
      119
      5800
    3. Miten Eerolan silmäkuvat voivat levitä muutamassa tunnissa ympäri maailmaa?

      Seuraako koko maailma persujen ja erityisesti Eerolan somea reaaliajassa? Edes kansanedustajan itsemurha eduskuntatalos
      Maailman menoa
      254
      4738
    4. Siviilipalvelusmies Halla-aho normalisoi rasismin perussuomalaisissa

      SMP:n tuhkille perustettu puolue ei ollut ihmisiä vastaan, vaan instituutiokriittinen. "Missä EU - siellä ongelma", oli
      Perussuomalaiset
      56
      4589
    5. Suomalaisilta vaaditaan valtavasti suvaitsevaisuutta - miksi sitä ei vaadita muslimeilta

      Suomalaisilta vaaditaan kaikkea, pitää olla suvaitsevainen ja hyväksyä vieraiden tavat, rasisti ei saa olla jne. Miksi s
      Maailman menoa
      62
      4089
    6. Juuri Suomen valtamedian toimittajat teki "silmävääntelystä" sen kohun

      ja ilmeisesti ottivat yhteyttä myös ulkomaisiin medioihin, että katsokaas tätä. Mutta Japanin medioissa on asiaan suhta
      Maailman menoa
      160
      3920
    7. SDP:n kansanedustaja Marko Asell: Suomen myönnettävä maahanmuuton ongelmat

      Hänen mielestään Suomen pitää pyrkiä rajoittamaan jyrkästi turvapaikanhakijoiden pääsyä maahan ja hän arvioi, että maaha
      Maailman menoa
      167
      3722
    8. Sinun ja kaivatun nimikirjaimet

      Mitkä ne on ? Meillä H❤️M 👩‍❤️‍👩
      Ikävä
      90
      1688
    9. Onko sinulla ja kaivatulla

      joku yhteinen tärkeä paikka?
      Ikävä
      92
      1171
    10. Mikä on viimeisin asia

      mitä olen sinulle kertonut?
      Ikävä
      42
      837
    Aihe