Detta är troligen ett väldigt enkelt problem, men jag kommer inte på hur jag smidigast skall knäcka det. Du får nog förklara lite noggrannare. Är Jag skall försöka att förklara. Nu har jag lyckats med att fixa till det, men går det inte att göra det effektivare? Hade glömt av syntaxen för instr, det ska inte vara en nolla först. Eftersom det bara rör sig om den sista så är det lättast med instrrev istället.Plocka ut ett nummer
<code>
MultLang_1="Bli Medlem"
MultLang_2="Att bli medlem är väldigt enkelt, nu när Du har hittat hit till våran hemsida."
MultLang_3="Följ bara länken här nedanför"
</code>
Jag skall alltså ta ut det högsta nummeret ur MultiLang.
Jag funderar i splitt:
<code>
nr=SPLITT(txtSv.text,"=")
</code>
Sen går jag i väggen, för jag ville ha en splitt till:
<code>
snr=SPLIT(nr(0),"_"
</code>
snr(1) borde väll ta ut ett nummer eller är jag ute och seglar?
Hur får jag fram det högsta nummeret?
Går det att skriva detta smidigare?Sv: Plocka ut ett nummer
MultLang_1="Bli Medlem"
en hel sträng eller betyder det att variabeln MultLang_1 är "Bli Medlem" ?
Är det det senare fallet så verkar det väldigt mycket rimligare med en enkel array, och då får du upp det största numret som UBound(MultLang).
Är det det första fallet, så känns en split ganska overkill. Jag skulle snarare gjort något i stil med:
<code>
StartPos=InStr(0, txtSv.Text, "_")+1
SlutPos=InStr(0, txtSv.Text, "=")
snr=CInt(Mid$(txtSv.Text, StartPos, SlutPos-StartPos))
</code>
(och kanske eventuellt tryckt in både StartPos och SlutPos i mid-grejen)
Jag har inte testat grejen, men du förstår principen...Sv: Plocka ut ett nummer
<code>
MultLang_1="Bli Medlem" 'en sträng
MultLang_2="Att bli medlem är väldigt enkelt, nu när Du har hittat hit till våran hemsida." 'en sträng
MultLang_3="Följ bara länken här nedanför" 'en sträng
</code>
Allt ligger då i en textruta txtSv.text.
Det är viktigt att jag kan hitta det högsta nummeret som finns i MultLang_ i detta fallet
3.
Jag försökte med ditt ex men fick error:
<code>
Runtime error '5'
Invalid procedur call or argument
</code>
Det ser ju annars väldigt intressant ut, det du tänkte på, men måste man inte ha en for slinga?
[REDIGERAT]
Jag fick igång det så här:
<code>
Dim StartPos As Long, SlutPos As Long
StartPos = InStr(1, txtSv.text, "_") + 1
SlutPos = InStr(1, txtSv.text, "=")
sNr = CInt(Mid$(txtSv.text, StartPos, SlutPos - StartPos))
MsgBox sNr
</code>
Men den går ju inte igenom hela texten,den stannar efter 1
Hur bör jag göra där?Sv: Plocka ut ett nummer
<code>
Dim StartPos As Long, SlutPos As Long
nr = Split(txtSv.text, "MultLang")
sNr = nr(UBound(nr))
StartPos = InStr(1, sNr, "_") + 1
SlutPos = InStr(1, sNr, "=")
sNr = CInt(Mid$(sNr, StartPos, SlutPos - StartPos))
List2.Clear
For i = 1 To sNr
List2.AddItem i
Next
</code>
Resultatet skall alltså laddas in i en listbox.Sv: Plocka ut ett nummer
slutpos = InStrRev(txtsv.Text, "=")
startpos = InStrRev(txtsv.Text, "_")+1
Mid$(txtsv.Text, startpos, slutpos - startpos)