split a number into its digits

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Hi Guys! I need to split numbers into its digits which i will latter assign
to variables. For instance:
originalNumber = 12345

then
a = 1
b = 2
c = 3
d = 4
e = 5
I am building a macro, so I cannot use the "text to columns trick" with
fixed delimiters
Thanks a lot guys!!
 
Have you tried with string formulas such as MID?
Using a For ... Next loop you could write a procedure that extracts at
each recursion one of the digits, and you could store them in an
array.

For example:

For i=1 to Len(number)
digit(i) = MID(number, i, 1)
Next i

Antonio.
 
Have you tried with string formulas such as MID?
Using a For ... Next loop you could write a procedure that extracts at
each recursion one of the digits, and you could store them in an
array.

For example:

For i=1 to Len(number)
digit(i) = MID(number, i, 1)
Next i

Antonio.

Ooops :-)
Of course you have to declare the array digit as an array of doubles
(or integers):
Dim digit() As Double

Then you have to re-declare it to change its dimensions according to
the length of the number oyu want to split:
ReDim digit(1 To Len(number))

And only now you can apply the For... Next loop.
 
Hi Antonio! thank you so much for your help. I tried the MID function. It
works great! Is there a way to convert the resulkting number from string to
an integer?
that is, the mid function returns a "5", instead of a 5
 
An other way could be, if your number has no decimals, to divide
recursively the number by 10, and then assign to an array variable the
difference multiplied by 10 of the divided number and its integer
part.

An example, that's clearer:

number= 2345
numb_by_10= 2345/10= 234.5
int_numb_by_10= 234
diff= 234.5 - 234= .5
10xdiff= 10*.5= 5 --------------------------> first element of the
array variable.

And so forth.
 
I know that there is the possibility of changing the data type of a
variable, but actually I'm not an expert in conversions...
I thought that declaring the variable digit() As Double could already
solve the problem of converting the string "5" in number 5...

Try with the other approach that I posted. It allows you to work with
numbers instead of strings, and maybe it's better. I don't have time
now to write it in proper code, because I'm just about to leave the
office. But I hope it can be a useful suggestion anyway :-)

See ya!

Antonio.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top