回答
我能玩吗? :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
'Len(Split(Num&“。”,“。”)(1))' – omegastripes
对不起,我不明白你在说什么? –
考虑'Num = 1452',添加点连接以使代码失效。 – omegastripes
=LEN(LEFT(A1;LEN(A1)-FIND(".";A1))-1)
=LEN(RIGHT(A1;LEN(A1)-FIND(".";A1)))
也就是说,如果你的十进制字符是一个点。
我有一个小数点分隔符,都返回2(对于A1中的1452.13) –
= LEN(INT(A1))和= LEN(A1-INT(A1)) - 2可能更好。 –
有很多方法。例如here
这是一种相当快的技术,可以在小数点后找到数字。
可以复制和修改,找出小数点
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
无论是上述的前地方靠你十进制字符是“”
++适用于多种解决方案! (我认为(减)** - **'CLng(len1 <> len2)'应该是** + **'CLng(len1 <> len2)') –
我知道 - 非常聪明,但是当你在执行期间评估'CLng(len1 <> len2)'? (我得到一个-1) –
哦,是的。改变了它。 – HarveyFrench
使用Excel公式你最好使用下面的(快)式
=LEN(INT(A1))
=LEN(A1) - IF(INT(A1)-A1,1,0) - LEN(INT(A1))
如果您在使用Microsoft Word的工作:
Sub dot()
Dim Num As Variant
Num = 1452.13
MsgBox "You number: " & Num
MsgBox "Length of number before decimal: " & Len(Split(Num, ".")(0))
MsgBox "Length of number After decimal: " & Len(Split(Num, ".")(1))
End Sub
基于亚洲时报Siddharth溃败回答
认为没有新的见解;如果你想让代码真的很安全(看看@ Siddharth-Rout的编辑),然后使用与通常的点定界符“。”不同的局部小数设置。 (在中欧使用的逗号,G。在德国或奥地利)。顺便说一下,这是VBA代码不仅适用于MS Word。 –
你是对的@T.M。不同的是'Debug.Print'Siddrath没有提到结果在Imrmediate Window。如果一个初学者可能在观看结果时遇到问题。我想知道你的意见。 –
您打算提供帮助,这很好,但我认为即使是初学者也可以看看MS帮助网站,如果他不知道“Debug.Print”的含义是什么的话。海事组织这个增加并没有真正与问题本身或迫切需要澄清:-) –
- 1. 通过Excel VBA计算小数位数
- 2. VBA Excel ADODB计数字段
- 3. Excel VBA宏 - 字符串到小数
- 4. 与excel数据库的VBA计数器
- 5. Excel VBA字符匹配计数修复
- 6. Excel VBA - 计数重复
- 7. Excel VBA水平计数
- 8. 计算小数点前后的空格
- 9. 计数字符VBA
- 10. 使用javascript计算小数位数前后的位数
- 11. 如何计算2位数后的所有数字,但小数点前?
- 12. Excel VBA更改数字的后两位数
- 13. Excel的VBA ADODB.Connection的Sql计数distincts
- 14. EXCEL VBA - 使用字典和数组计数
- 15. (Excel)在其他值之前添加小数点后的特定数字
- 16. Excel-每小时计数
- 17. Excel VBA中的计数搜索结果
- 18. Excel VBA数组
- 19. Excel VBA中的计数最后一排的源文件
- 20. 如何计算小数点前后的位数?
- 21. 计数小写字母数
- 22. VBA Excel小计错误
- 23. VBA分裂小数点后的字符串由2个字符
- 24. Excel 2010 VBA函数粘贴为计算后的值
- 25. VBA Excel范围()带小区参数
- 26. 停止Excel(或VBA)舍入小数
- 27. Excel VBA UDF格式化 - 在计算之前更改参数值
- 28. Excel检查并更换小数点后的数字
- 29. Excel到csv文件转换 - 保留小数点后的数字
- 30. 使用excel vba自动计算某些单元格。小数点后两位小数格式被覆盖
欢迎堆栈溢出!你有没有试图解决这个问题?如果你有,请编辑你的问题,包括你的代码和研究,以显示什么不适合你。如果你还没有,你应该先尝试自己解决它,然后在这里发布代码和研究。它让你的问题更容易让别人回答! – SuperBiasedMan