Du behöver bara amvända lite simpla strängfunktioner...
strImg = "IM000378.JPG"
strTmp = Left(strImg,2) & Cint(Mid(strImg,3,6)) + 1 & Right(strImg,4)
Fast du kommer få problem med att nummren börjar på 000.
6 svar · 225 visningar · startad av OveRRidE
Jag har suttit som en dåre och försökt förstå mig på RegExp, men det går inte. Iallafall inte alla delar av det..
Mitt fall:
Jag har ett bildnamn, ex IM000378.JPG som skall formateras en aning. Det jag vill få ut ur funktionen är samma bildnamn, fast ett steg högre OCH ett steg lägre.
Jag vill alltså av denna "string" ha ut exempelvis IM000379.JPG och IM000377.JPG.
Är det någon som förstår?
Skulle uppskatta all hjälp, tack på förhand.
Du behöver bara amvända lite simpla strängfunktioner...
strImg = "IM000378.JPG"
strTmp = Left(strImg,2) & Cint(Mid(strImg,3,6)) + 1 & Right(strImg,4)
Fast du kommer få problem med att nummren börjar på 000.
Gjorde en liten funktion för det
Function StrAdd(str,interval)
strLen = Len(str)
strTmp = Cint(str) + interval
If Len(strTmp) < strLen Then
For i = 0 To strLen - Len(strTmp)
strZero = strZero & "0"
Next
StrAdd = strZero & strTmp
Else
StrAdd = strTmp
End If
End Function
Så resten borde se ut såhär då:
strImg = "IM000378.JPG"
strTmp = Left(strImg,2) & StrAdd(Mid(strImg,3,6),1) & Right(strImg,4)
Rättelse efter tre gånger felskrivet..
Helt sanslöst, jag klantade till det igen!
Jag får ut IM0000379.JPG.. en nolla för mycket..
Det skall självklart vara en etta istället för en nolla i loopen:
For i = 1 To strLen - Len(strTmp)
Tack!