【问题标题】:Getting 15th digit获得第 15 位数字
【发布时间】:2018-02-02 18:06:31
【问题描述】:

变量包含15位,如何从另一个函数中获取第15位的值?

Function isvalid(stringvalue As String) As Boolean
Dim methodToCall As String
methodToCall = "somefunction"
isvalid = stringvalue Like "[0-9][0-9][A-Z][A-Z][A-Z][A-Z][A-Z]####[A-Z][A-Z][A-Z][methodToCall(stringvalue)]"

这里 methodToCall 将调用另一个函数,该函数是我的 15th 数字的返回值 如何从 isvalid 函数

获取另一个函数的值

【问题讨论】:

  • 请编辑您的问题以显示示例输入和输出。好像你的图案只有 14 个字符?
  • 01AAACA0123A1Z(我函数的最后一个数字是字母数字)
  • 至少在 vb6 中(不了解 vba):mid$(stringvariable, 15, 1) 将返回该字符串变量的第 15 个字符。
  • 再次 - 只有 14 个字符。另请注意,“数字”和“字符”不是一回事:“数字”通常仅表示 0-9
  • 是的,我同意,但上面的例子对你来说很清楚。我无法正确表达抱歉

标签: vba excel vb6


【解决方案1】:

假设我们有一个包含数字和其他字符混合的字符串,我们想要第 15th 位。 UDF:

Public Function GetFifteenth(sin As String) As Variant
    kount = 0
    For i = 1 To Len(sin)
        ch = Mid(sin, i, 1)
        If IsNumeric(ch) Then
            kount = kount + 1
            If kount = 15 Then
                GetFifteenth = CLng(ch)
                Exit Function
            End If
        End If
    Next i
    GetFifteenth = ""
End Function

应该这样做。例如:

Sub MAIN()
    Dim s As String, L As Variant
    s = "t2}nf[aW(494U,Oay8OWkh{xa*9>9b2SY5yPt14;m98AYd$|>U%orIJ[iF*Q)0w21!0:eX9,kU<_ x=B+cAFU<)%@{JMSze}"
    L = GetFifteenth(s)
    MsgBox L
End Sub

如果字符串总是正好包含 15 位数字,代码会简单一些。

【讨论】:

  • 我想使用公式从 excel 表中获取值。这里我不能用公式
  • 什么意思? @Gary's Student 为您编码一个公共功能。如果将其放入 Excel 文件中,则可以从普通单元格中调用它,因为它是 UDF(用户定义函数)。当然你可以使用公式!
  • isvalid = stringvalue Like "[0-9][0-9][A-Z][A-Z][A-Z][A-Z][A-Z]####[A-Z][A-Z][A-Z ][方法调用(字符串值)]”。我的意思是这里的“isvalid”是从我的单元格中获取值并将 14 个字符或数字发送到我上面提到的名为“somefunction”的函数。该函数将为“isvalid”函数提供第 15nthdigit 或字符
猜你喜欢
  • 1970-01-01
  • 2019-12-29
  • 2014-03-28
  • 2020-08-15
  • 2013-10-28
  • 2021-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多