Public Function IsPosInteger(X As Double) As Boolean
Const PRECISION = 0.000000000001
'Adjust PRECISIONS as desired to avoid
'false negatives caused by rounding errors
IsPosInteger = (X > 0) _
And (Abs(X - CLng(X)) <= PRECISION)
'Use X <=0 if you count zero as a +ve integer