View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Bill Li Bill Li is offline
external usenet poster
 
Posts: 46
Default Question about VarType

Hi Bill,

You should use IF-ELSEIF-END. Please try the following one.

Sub DisplayCellDataAttributes()


Application.ScreenUpdating = False

For Each rngCell In Selection

If (VarType(rngCell.Cells) = vbInteger) Then
MsgBox rngCell.Address & vbCrLf & vbCrLf & "
Cell DATA Format - Integer" _
& vbCrLf & vbCrLf & "Data: " &
rngCell.Cells & vbCrLf & vbCrLf _
& "VarType: " & VarType(rngCell.Cells)

ElseIf (VarType(rngCell.Cells) = vbLong) Then
MsgBox rngCell.Address & vbCrLf & vbCrLf & "
Cell DATA Format - Long" _
& vbCrLf & vbCrLf & "Data: " &
rngCell.Cells & vbCrLf & vbCrLf _
& "VarType: " & VarType(rngCell.Cells)
ElseIf (VarType(rngCell.Cells) = vbDouble) Then
MsgBox rngCell.Address & vbCrLf & vbCrLf & "
Cell DATA Format - Double" _
& vbCrLf & vbCrLf & "Data: " &
rngCell.Cells & vbCrLf & vbCrLf _
& "VarType: " & VarType(rngCell.Cells)
End If

Next

Application.ScreenUpdating = True

End Sub


Best Regards

Bill

-----Original Message-----
With the following macro if a cell has a value of 5 in

it, the macro
identifies it as a double, I would have expected it to

come back as an
integer. Can you tell me what I'm doing incorrectly?

tia

Sub DisplayCellDataAttributes()

If Not RangeTools.IsRangeValid Then Exit Sub

Application.ScreenUpdating = False

For Each rngCell In Selection

If (VarType(rngCell.Cells) = vbInteger) Then

MsgBox
rngCell.Address & vbCrLf & vbCrLf & " Cell DATA Format -

Integer" &
vbCrLf & vbCrLf & "Data: " & rngCell.Cells & vbCrLf &

vbCrLf &
"VarType: " & VarType(rngCell.Cells)
If (VarType(rngCell.Cells) = vbLong) Then MsgBox
rngCell.Address & vbCrLf & vbCrLf & " Cell DATA Format -

Long" &
vbCrLf & vbCrLf & "Data: " & rngCell.Cells & vbCrLf &

vbCrLf &
"VarType: " & VarType(rngCell.Cells)
If (VarType(rngCell.Cells) = vbDouble) Then MsgBox
rngCell.Address & vbCrLf & vbCrLf & " Cell DATA Format -

Double" &
vbCrLf & vbCrLf & "Data: " & rngCell.Cells & vbCrLf &

vbCrLf &
"VarType: " & VarType(rngCell.Cells)


Next

Application.ScreenUpdating = True

End Sub

.