使用 Mid 和 Pos 函数提取 char/numbers

Extract char/numbers using Mid and Pos function

我有一个值为“String_test|123456”的字符串

如何提取数字和字符并将它们放入另一个变量 string2 = "String_test" 和 int = 123456 使用 Mid / Pos 函数。

谢谢!

假设 | 是分隔符,使用 Split 函数更容易做到这一点。

Sub Test()
    Const sampleStr As String = "String_test|123456"
    
    Dim splitArr() As String
    splitArr = Split(sampleStr, "|")
    
    Dim string2 As String
    string2 = splitArr(0)
    Debug.Print string2 'String_test
    
    Dim int2 As Long
    int2 = splitArr(1)
    Debug.Print int2 '123456
End Sub

您可以修改此用户定义的函数以满足您的需要。

Public Function ReturnIntegers(cell As Range) As String

   Dim stringholder As String
   stringholder = cell.value
   Dim pos As Integer
   pos = InStr(1, stringholder, "|", vbTextCompare)
   ReturnIntegers = Right(stringholder, (Len(stringholder) - pos))
   
End Function

假设您想要 PowerBuilder 答案而不是给出的答案... 您似乎有一个字符串,其中 'string' 部分和 'number' 部分由竖线字符“|”分隔。假设这是数据的正常格式,您可以通过以下方式找到管道的位置:

li_pipepos = Pos(ls_string, '|')

然后字符串部分是这样找到的:

ls_string_portion = Mid(ls_string, 1, li_pipepos - 1)

找到号码部分:

ls_number_portion = Mid(ls_string, li_pipepos + 1 )

然后将数字部分转换为整数(注意,因为在 PB 中整数不是很大 - 我会使用 long 来代替):

ll_number = Long(ls_number_portion)

现在,如果您的数据不是标准格式,您将需要遍历所有字符以确定它们是否为数字,然后将它们附加到字符串变量(一个用于数字,另一个用于字符) 然后最后将数字字符串转换为数字。