Excel VBA计数小数前后的数字

我试图计算小数前后的数字。

比如1452.13之前会是4,之前会是2。

值存储在一个string我想我可能需要使用lenfind,但无法弄清楚?

将不胜感激任何帮助。

我可以玩吗? :d

Num = 1452.13 Debug.Print Len(Split(Num, ".")(0)) '<~~ Length of number before decimal Debug.Print Len(Split(Num, ".")(1)) '<~~ Length of number After decimal 

编辑:

我假设你只能通过小数。 但为了使其万无一失,您可以使用它

 Num = 1452 Debug.Print Len(Split(Num, ".")(0)) '<~~ Length of number before decimal If InStr(1, Num, ".") Then Debug.Print Len(Split(Num, ".")(1)) _ Else Debug.Print 0 '<~~ Length of number After decimal 

使用Excel公式,你最好使用下面的(快速)公式

 =LEN(INT(A1)) =LEN(A1) - IF(INT(A1)-A1,1,0) - LEN(INT(A1)) 

有很多方法。 例如这里

这是一个非常快速的技术来查找小数点后的数字。

它可以被复制和修改以find小数点前的位置

 Function CountDecimalPlaces(aNumber As Double) As Long Dim len1 As Long, len2 As Long len1 = Len(CStr(aNumber)) len2 = Len(CStr(Int(aNumber))) CountDecimalPlaces = len1 - len2 + CLng(len1 <> len2) End Function Function CountInteger(aNumber As Double) As Long CountInteger = Len(CStr(Int(aNumber))) End Function 

以上都不依赖于你的小数字符是“。”

 =LEN(LEFT(A1;LEN(A1)-FIND(".";A1))-1) =LEN(RIGHT(A1;LEN(A1)-FIND(".";A1))) 

也就是说,如果你的小数点是一个点。