获取Dot“之前的字符串长度。”

时间:2013-10-01 05:34:12

标签: vba excel-vba excel

如何获取Excel(VBA)中字符串中点之前的字符数?

例如:

213123.2321321将变为6而33.2312312将变为2。

我需要它来改变我的代码的工作方式,我认为这应该很容易做到。

更多信息:

我想做的是:

  • 如果我有123.123,我希望它成为0.123123
  • 如果是1.23123,我希望它变为0.0123123
  • 如果是4位数,1111.123123,则为1.111123123

1 个答案:

答案 0 :(得分:1)

您可以使用Int获取数字的整数部分,然后使用Len计算数字位数。

实际例子:

Function ChangeNumber(n As Double)
    Select Case VBA.Len(Int(n))
        Case 1: ChangeNumber = n / 100
        Case 2, 3, 4: ChangeNumber = n / 1000
        Case Is > 4: ChangeNumber = n / 10000
    End Select
End Function

Sub Test()
    Debug.Print ChangeNumber(123.123) //Prints 0.123123
    Debug.Print ChangeNumber(1.23123) //Prints 0.0123123
    Debug.Print ChangeNumber(1111.123123) //Prints 1.111123123
End Sub

您可以修改Case声明以满足您的需求,即是否除以100,1000,10000或您选择的任何内容。

相关问题