【问题标题】:Get length of string before Dot "."获取点“。”之前的字符串长度。
【发布时间】:2013-10-01 05:34:11
【问题描述】:

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

例如:

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

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

更多信息:

我想做的是这样的:

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

【问题讨论】:

  • 基础版还是视觉版?寻找您选择的语言相当于 IndexOf(".") ehich 将返回第一个句点 (.) 的位置
  • 我猜应该是 Visual Basic。会搜索那个。
  • Visual Basic for Applications(如果您在 Excel 宏中执行此操作)。
  • 是的,就是这样。将尝试检查 Split 和 IndexOf。

标签: vba excel


【解决方案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 或您选择的任何值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多