Dim LNewUnit As Double
Dim SNewUnit As String
LNewUnit = MetricAmount * ConversionNumber 'fill in these
For i = 1 To Len(Str(LNewUnit))
If Mid(Str(LNewUnit), i, 1) = "." Then
TempWholeNumber = CLng(Mid(Str(LNewUnit), 1, i - 1))
TempDecimaL = CDbl(Mid(Str(LNewUnit), i, Len(Str(LNewUnit)) - i + 1))
GoTo NumberSeparated
End If
Next i
TempWholeNumber = LNewUnit
TempDecimaL = 0
NumberSeparated:
If TempDecimaL <> 0 Then
TempFractNum = 0
TempFractDen = 1
For Den = 1 To 100
For Num = 1 To 100
If Abs((Num / Den) - TempDecimaL) < Abs((TempFractNum / TempFractDen) - TempDecimaL) Then
TempFractNum = Num
TempFractDen = Den
End If
Next Num
Next Den
TempFraction = TempFractNum & "/" & TempFractDen
End If
SNewUnit = TempWholeNumber & " " & TempFraction & " " & Chr(34) 'chr(34) is a quatation mark
MsgBox SNewUnit
It's not great (as it uses loops) but its a start. Good luck.