Thread: Code
View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
J.E. McGimpsey J.E. McGimpsey is offline
external usenet poster
 
Posts: 493
Default Code

Not positive what you mean by "to put the % character in the cell
itself."


If you just want the cell to contain %, then

Dim c As Range
For Each c In Range("O2:O100")
With c
If InStr(1, .Offset(, 1).NumberFormat, "%") Then _
.Value = "%"
End With
Next c


If instead you want to append the % to the existing text:

Public Sub try()
Dim c As Range
For Each c In Range("O2:O100")
With c
If InStr(1, .Offset(, 1).NumberFormat, "%") Then
.NumberFormat = "@"
.Value = .Text & "%"
End If
End With
Next c
End Sub

In article ,
"Todd Huttenstine" wrote:

I have Range O2:O100 and P2:P100. The following code
looks in Range P2:P100 and if it finds a % in the value,
will offset into the corresponding cell in Range O2:O100
and format the cell with a "%". What I would like instead
is instead of formatting the cell with a "%", to put the %
character in the cell itself.


Dim c As Range
For Each c In Range("O2:O100")
If InStr(1, c.Offset(, 1).NumberFormat, "%") Then
c.NumberFormat = c.Offset(, 1).NumberFormat
Else
c.NumberFormat = ""
End If
Next