Tiedostossa, olkoon nimi vaikka lauseet, on 2 sarakkeinen taulukko, 1 sarakkeella juokseva numerointi ja saman rivin toisella sarakkeella lause.
Kirjoitan tekstiä, ja tekstin joukkoon pitäisi hakea lause tuolta taulukosta numeron perusteella.
Kirjoitan numeron, painan makron näppäinyhdistelmää tai painiketta;
makro avaa lauseet tiedoston, siirtyy annetun numeron kohdalle, siitä seuraavaan sarakkeeseen, kopioi solun sisällön, sulkee tiedoston, korvaa annetun numeron kopioidulla tekstillä...
Onko mahdollista luoda tuollainen makro ???
Makro-gurut, apua kaivataan !!!
1
669
Vastaukset
olen käyttänyt vastaavaa ohjelmoinnissa. Helppoa laittaa ryhmittäin($) sanomat(lauseet) ja helppo hakea tiedostosta. Tietenkin sen voi tehdä pyytämälläsi tavalla, mutta mielestäni tämä on mukavin ja selkein tapa.
tee tiedosto C:\lauseet.txt" muotoon
$10 'aihe1
kunde testaa1
kunde testaa2
kunde testaa3
$20 'aihe2
kunde testaa11
kunde testaa21
$30 'aihe3
kunde testaa111
kunde testaa211
kunde testaa311
kunde testaa411
kunde testaa511
ja liitä koodi ThisDocument moduuliin...
kysyy aiheen numeron esim. 20 ja sitten rivinumeron esim. 2 ja kirjoittaa aktiiviseen kohtaan tekstin "kunde testaa21"
Dim Aihe As Variant
On Error Resume Next
Aihe = InputBox("Anna aiheen numero")
If Aihe = "" Then Exit Sub
Tekstirivi = InputBox("Anna rivinumero")
If Tekstirivi = "" Then Exit Sub
Selection.TypeText LueTeksti("C:\lauseet.txt", Aihe, Tekstirivi)
End Sub
Function LueTeksti(strTextFile As String, strDollari As Variant, lngTxtLine As Variant) As Variant
Dim dollari As String
Dim Tekstirivi As String
Dim Rivinumero As Long
Dim Dollaritesti As Boolean
Dim Pituus As Long
Dim Tarkistus As Long
Dim Oma As Long
On Error GoTo VIRHE
dollari = "*$" & strDollari & "*"
Open strTextFile For Input As #1
Do While Not EOF(1)
Line Input #1, Tekstirivi
If Tekstirivi Like dollari Then
Dollaritesti = True
Rivinumero = 0
End If
If Dollaritesti = True Then
If Rivinumero = lngTxtLine Then
Oma = InStr(1, Tekstirivi, (Chr(39)))
If Oma > 0 Then
Pituus = Len(Tekstirivi)
Tarkistus = InStr(1, Tekstirivi, (Chr(39)))
If Tarkistus > 0 Then
LueTeksti = Mid(Tekstirivi, 1, (Tarkistus - 2))
If LueTeksti = "False" Or LueTeksti = "True" Then
LueTeksti = CBool(LueTeksti)
Exit Do
ElseIf IsNumeric(LueTeksti) = True Then
LueTeksti = CDbl(LueTeksti)
Exit Do
Else
LueTeksti = CStr(LueTeksti)
Exit Do
End If
End If
ElseIf Oma = 0 Then
LueTeksti = Tekstirivi
If LueTeksti = "False" Or LueTeksti = "True" Then
LueTeksti = CBool(LueTeksti)
Exit Do
ElseIf IsNumeric(LueTeksti) = True Then
LueTeksti = CDbl(LueTeksti)
Exit Do
Else
LueTeksti = CStr(LueTeksti)
Exit Do
End If
End If
End If
Rivinumero = Rivinumero 1
End If
Loop
Close #1
POISTU:
If LueTeksti = Empty Then MsgBox "Annettua riviä ei löydy!!!", vbCritical
Exit Function
VIRHE:
Close #1
MsgBox "Joku meni pieleen!!!", vbCritical
Resume POISTU
End Function
Keep Excelling (Wording)
@Kunde
P.S. seuraavaksi varmaan haluatkin tiedot lomakkeelle, josta klikkaamalla sitten suoraan tekstiin... :-)
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Klaukkalan onnettomuus 4.4
Klaukkalassa oli tänään se kolmen nuoren naisen onnettomuus, onko kellään mitään tietoa mitä kävi tai ketä onnettomuudes1094842Yleltä tyrmäävä uutinen
Ylen uutisen mukaan Raamattu on keksitty n. 2600. Putoaako kristinuskolta pohja kokonaan alta pois? https://yle.fi/a/744191527- 1891114
Pakko kertoa mies
Äitini tietää, että olen ihastunut sinuun. 😳 halusin että hän näkisi sinun kuvan ja pyysin googlaamaan sinua. Kommentti1101098Sinä vain tulit elämääni
Ja joku tarkoitus sillä on ollut. Näyttämään mitä olen ja kuinka arvokas voisin olla. Se muutti ja käänsi elämäni suunna861010Riitta-Liisa ja Toni Roponen: Ero! Riitta-Liisa Roponen kertoo asiasta Instagramissa.
Riitta-Liisa ja Toni Roponen eroavat. Riitta-Liisa Roponen kertoo asiasta Instagramissa. – Talvi on ollut elämäni synk151004tilitoimistopiirainen huutaa
mikä tää piiraisen tilitoimistomies oikee on? olin kuullut vaikka mitä huhuja, että ihan valtavan äkkipikanen mies mutt11958Millaisia ajatuksia on kaivatusta ja tilanteestanne tänään?
Kerro omista mietteistäsi tai lähetä terveisiä. Ehkä hän lukee ja lähettää sinulle takaisin omia mietteitään.47931- 64921
- 64876