Vba CTE“;期望值:表达式“;来自If(不是Double.TryParse(字符串,Double))
在构建上述函数时,我在Vba CTE“;期望值:表达式“;来自If(不是Double.TryParse(字符串,Double)),vba,ms-access,Vba,Ms Access,在构建上述函数时,我在If语句上得到一个编译错误(预期为:表达式)拉丁语将始终作为有效的DMS纬度值传递,我已确认(尽管MsgBox(SplitA(0))已被删除)事实上确实存在SplitA(0) 似乎Double.TryParse()没有成功返回布尔值,除非我误解了。发生这种情况的原因是什么?如果内存为我提供了正确的Double.TryParse()用于VB.net。我想你要找的是Cdbl把它转换成双精度的。您可以在此处找到更多有关信息: 这是一个神奇的资源,几乎所有的内置功能,您将永远需要
If
语句上得到一个编译错误(预期为:表达式)拉丁语
将始终作为有效的DMS纬度值传递,我已确认(尽管MsgBox(SplitA(0))
已被删除)事实上确实存在SplitA(0)
似乎
Double.TryParse()
没有成功返回布尔值,除非我误解了。发生这种情况的原因是什么?如果内存为我提供了正确的Double.TryParse()
用于VB.net。我想你要找的是Cdbl把它转换成双精度的。您可以在此处找到更多有关信息:
这是一个神奇的资源,几乎所有的内置功能,您将永远需要 你是用vba还是vb.net编程的?这似乎已经做到了——我看到了一些关于
CDbl
的浮动,但无法找出两者之间的区别。感谢您的及时回复!没问题,很高兴我能帮忙。
Function LatToDecimal(latIn As String) As String
Dim SplitA() As String
SplitA() = Split(latIn, "°") 'A(0) is DEG.
Dim SplitB() As String
SplitB() = Split(SplitA(1), "'") 'B(0) is MIN.
Dim SplitC() As String
SplitC() = Split(SplitB(1), """") 'C(0) is SEC. C(1) is N/S.
Dim deg As Double
Dim min As Double 'Not yet used.
Dim sec As Double 'Not yet used.
If (Not Double.TryParse(SplitA(0), deg)) Then
deg = 0
End If
End Function