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)))
也就是说,如果你的小数点是一个点。