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