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

127

    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. Persujen mukaan rasismi on huumoria

      Vaan kun koomikko kutsui Halla-ahoa fasistiksi, niin piti haastaa oikeuteen. Mihin se huumorinitaju yhtäkkiä hävisi? ⠀
      Maailman menoa
      255
      6503
    2. Rasismia kaikkialla näkevät ovat Suomen tyhmimpiä ihmisiä

      ja monillahan kuluu myös mielialalääkkeitä, eli päässä on ongelmia. Mutta he eivät tajua kuinka paljon ja ihan todellis
      Maailman menoa
      197
      6047
    3. Ei kahta sanaa etteikö Petteri Orpo hyväksy rasismia

      Koska jatkaa hallituksessa rasistisen perussuomalaisiksi itseään kutsuvan puolueen kanssa. Se on Petteri Orpon arvomaai
      Maailman menoa
      27
      5579
    4. Mitkäs nuorisoporukat ovat toisia nuoria ryöstelleet (selvää rassismia)

      No poliisi kertoo, että maahanmuuttajataustaisia ovat, ja isot porukat sillä yhden suomalaisen uhrin kimpussa on ollut j
      Maailman menoa
      125
      4348
    5. Hallitus on kaadettava ja Orpon on erottava

      Mikään muu hallitus ei ole oman elämäni aikana tuhonnut näin paljon tämän maan taloutta ja työllisyyttä sekä suomen main
      Maailman menoa
      173
      3615
    6. Lasse Lehtonen vaatii persuja pyytämään anteeksi aasialaisilta

      Persut ova romahduttaneet Suomen maakuvan parissa päivässä negatiiviseksi rasismillaan ja se alkaa vaikuttamaan jo Suome
      Maailman menoa
      131
      3405
    7. HS 12/25 kysely: persut romahti, demarit raketoi

      Kyyti on kylmää persuleirissä, saattaa vetää siellä silmätkin viirulleen. Sen sijaan SDP:n puoluetoimistolla voidaan pok
      Maailman menoa
      32
      3097
    8. Rasismi rapauttaa Suomen mainetta ja hallituksen hiljaisuus pahentaa vahinkoa

      Finnairin viesti Japanista on pysäyttävä: suomalaisen politiikan rasismikohut heijastuvat suoraan matkustuspäätöksiin ja
      Maailman menoa
      288
      2602
    9. Töppö-persut ovat todella tyhmiä

      sen kertoo tämäkin avaus: "Persujen suosio vain laskee" Töppö-persu vaan unohtaa, että ennen tätä galluppia persujen kan
      Maailman menoa
      18
      2547
    10. Lasse Lehtonen palasi ambulanssilennolla Suomeen

      Nyt on syytä lopettaa irvailu.
      Maailman menoa
      141
      2422
    Aihe