Et forslag kunne være at bruge ascii værdierne..... Jeg vil lige sige jeg ved ikke om de er i røven på hinanden eller om man skal ligge til hver gang med forskellige tal.....
et andet forslag kunne være en if eller case....
det kunne være noget lignende det her:
For I = 1 to 5 If I = 1 then MsgBox "a" If I = 2 then MsgBox "b" If I = 3 then MsgBox "c" If I = 4 then MsgBox "d" If I = 5 then MsgBox "e" Next I
eller:
For I = 1 to 5 If I = 1 Then MsgBox "a" ElseIf I = 2 Then MsgBox "b" ElseIf I = 3 Then MsgBox "c" ElseIf I = 4 Then MsgBox "d" ElseIf I = 5 Then MsgBox "e" End If Next I
Det jeg tænkte på med ascii værdien er den kan printes ud som bogstav..... eks. a har ascii 47 og b 48 osv. vil det se sådan her ud ca.
For I = 47 to 51 MsbBox chr$( & I & ) Next I
(måske er det sådan her med den chr$ : MsbBox chr$(I) )
Jeg vil lige sige at jeg ikke har testet noget af det, da jeg ikke har vb installeret pt.
Value er dit tal du ønsker konverteret og digits er antallet af 'pladser' i dit resultatl. Har selv brugt den til at base 36 system.
function DecToBase36(value,digits) dim i,a,n,x,r n = value a = array(7962624,331776,13824,576,24,1) r = "" for i = 0 to UBound(a) if a(i) <= n then x = Fix(n / a(i)) n = n - x * a(i) else x = 0 end if if x <= 9 then r= r+ Chr(x+48) else r= r+ Chr(x+87) end if next DecToBase36 = Right(r,digits) end function
function Base24ToDec(value) dim i,c,r,n r = 0 for i = 1 to Len(value) c = UCase(Mid(value,i,1)) if c >= "0" and c <= "9" then n = ASC(c)-48 elseif c >= "A" and c <= "Z" then n = ASC(c)-55 else Base24ToDec = -1 exit for end if r = r * 24 + n next Base24ToDec = r end function
function DecToBase25(value,digits) dim i,a,n,x,r n = value a = array(9765625,390625,15625,625,25,1) r = "" for i = 0 to UBound(a) if a(i) <= n then x = Fix(n / a(i)) n = n - x * a(i) else x = 0 end if r = r & Chr(x + 97) next DecToBase25 = Right(r,digits) end function
function Base25ToDec(value) dim i,c,r,n r = 0 for i = 1 to Len(value) c = LCase(Mid(value,i,1)) if c >= "a" and c <= "y" then n = ASC(c)-97 else Base25ToDec = -1 exit for end if r = r * 25 + n next Base25ToDec = r end function
Og når vi så vender tilbage til det der blev spurgt om, så er squashguy's kommentar svaret på dit spørgsmål, idet han udnytter det faktum at ascii-værdierne for bogstaverne a-z ligger lige efter hinanden:
Dim i As Integer For i = Asc("a") To Asc("e") MsgBox (Chr(i)) Next
eller med kapitæler: Dim i As Integer For i = Asc("A") To Asc("E") MsgBox (Chr(i)) Next
Brug squashguy's forslag. Det svarer mest til det, du ønsker, og det kan IKKE lade sig gøre at skrive for i="a" to "fg"
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.