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ä!
VBA tiettyjen rivien kopiointi
1
91
Vastaukset
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
- 1231863
Noniin rakas
Annetaanko pikkuhiljaa jo olla, niin ehkä säilyy vienot hymyt kohdatessa. En edelleenkään halua sulle tai kenellekään mi1001650Lasten hyväksikäyttö netissä - Joka 3. nuori on saanut seksuaalisen yhteydenoton pedofiililtä
Järkyttävää! Lapsiin kohdistuva seksuaalinen hyväksikäyttö verkossa on yhä pahempi ongelma. Ulkolinja: Lasten hyväksikäy511225Kumpi vetoaa enemmän sinuun
Kaivatun ulkonäkö vai persoonallisuus? Ulkonäössä kasvot vai vartalo? Mikä luonteessa viehättää eniten? Mikä ulkonäössä?491108Multa sulle
Pyörit 24/7 mielessä, kuljet mun mukana, mielessä kyselen sun mielipiteitä, vitsailen sulle, olen sydän auki, aitona. M31988Nainen, olen tutkinut sinua paljon
Salaisuutesi ei ole minulle salaisuus. Ehkä teimme jonkinlaista vaihtokauppaa kun tutkisimme toisiamme. Meillä oli kumm50876Mies, eihän sulla ole vaimoa tai naisystävää?
Minusta tuntuu jotenkin, että olisit eronnut joskus, vaikka en edes tiedä onko se totta. Jos oletkin oikeasti edelleen s47876Olet myös vähän ärsyttävä
Tuntuu, että olet tahallaan nuin vaikeasti tavoiteltava. En tiedä kauanko jaksan tätä näin.37810Okei nyt mä ymmärrän
Olet siis noin rakastunut, se selittää. Onneksesi tunne on molemminpuolinen 😘56798Onko sulla empatiakykyä?
Etkö tajua yhtään miltä tämä tuntuu minusta? Minä ainakin yritän ymmärtää miltä sinusta voisi tuntua. En usko, että olet38797