change values in a column

G

guy

The values in column J are displayed as 1, 2, 3, 4, ...., 9, 10, 11, ....
I need all the values that are less than 10 added with leading 0, which are
put into column L.
(actually i want the values in column J change themselves, but i want to see
the difference before and after change, so i put the new values in column L)
But the following codes failed to do so....
Pls help...
Thanks a lot!!

----------------------------------------------------------------------

Sub test()

Dim i As Long
Dim st As String

For i = 2 To 150

Cells(i, 13) = TypeName(Cells(i, 10).Value)

If Cells(i, 10) < 10 Then
Cells(i, 11) = "yes"
st = "0" & Trim(Str(Cells(i, 10).Value))
Cells(i, 12).Value = st

End If

Next

End Sub
 
B

Bill Renaud

You could just format the cells to display numbers using a Custom Number
Format of "00".

In VBA code, this would look like the following:

Sub ShowLeadingZeroFormat()
Selection.NumberFormat = "00"
End Sub
 
J

JW

Like Bill said, you can simply change the number format. But that
will only be a visible change, not a real change. The value in the
cell will remain a single character. If you need tp physically place
a zero in the front, you'll need to change the number format of the
column to text. Something like this would work.
Sub test()
Dim i As Long
Dim st As String
Cells(1, 12).EntireColumn.NumberFormat = "@"
For i = 2 To 150
Cells(i, 13) = TypeName(Cells(i, 10).Value)
If Cells(i, 10) < 10 Then
Cells(i, 11) = "yes"
st = Trim("0" & Cells(i, 10).Text)
Cells(i, 12).Value = st
End If
Next
End Sub
 
J

JW

If you want to simply apply the changes/formatting to the existing
records, you could use this:
Sub test()
Dim i As Long
Cells(1, 10).EntireColumn.NumberFormat = "@"
For i = 2 To 150
Cells(i, 10).Value = _
Format(Cells(i, 10).Value, "00")
Next
End Sub
 
G

guy

thank you so much!

JW said:
Like Bill said, you can simply change the number format. But that
will only be a visible change, not a real change. The value in the
cell will remain a single character. If you need tp physically place
a zero in the front, you'll need to change the number format of the
column to text. Something like this would work.
Sub test()
Dim i As Long
Dim st As String
Cells(1, 12).EntireColumn.NumberFormat = "@"
For i = 2 To 150
Cells(i, 13) = TypeName(Cells(i, 10).Value)
If Cells(i, 10) < 10 Then
Cells(i, 11) = "yes"
st = Trim("0" & Cells(i, 10).Text)
Cells(i, 12).Value = st
End If
Next
End Sub
 

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

Top