This uses Nullable Value Types
Private Function ToDouble(strVal As String) As Double?
' Nullable Value Types
' https://learn.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/data-types/nullable-value-types
Dim rv As Double?
Dim d As Double
If Double.TryParse(strVal, d) Then
rv = d
End If
Return rv
End Function
To use it
Dim TheVal As Double
Dim valid As Double?
valid = ToDouble("ABD")
If valid.HasValue Then TheVal = valid.Value
valid = ToDouble("123.456")
If valid.HasValue Then TheVal = valid.Value