VBA将字符串分为两部分

时间:2019-01-24 11:28:05

标签: vba string ms-access

我正在尝试从该字符串中获取两个代码:“ HL PNX-70 [15200]” 但是通过此代码,我获得了两次相同的输出:“ HL PNX-70”。因此,代码未正确完成。 如何从上述字符串获取输出“ 15200”?

代码:

Private Sub Comando221_Click()
MsgBox (Right(Split("HL PNX-70[15200]", "[")(0), 50))
MsgBox (Left(Split("HL PNX-70[15200]", "[")(0), 50))
End Sub

4 个答案:

答案 0 :(得分:2)

您在寻找这个吗?

 Sub Test()

      MsgBox Split("HL PNX-70[15200]", "[")(0)
      MsgBox Replace(Split("HL PNX-70[15200]", "[")(1), "]", "")

 End Sub

enter image description here

答案 1 :(得分:0)

Split返回一个从零开始的数组,因此您对第二个元素索引1感兴趣。代码的两行都提取了“ HL PNX-70”,最左边和最右边的50个字符显然是一样。

此代码说明了为特定示例提取所需字符串的两种方法,但是如果要使用多种不同类型的字符串,则不一定是固定的。根据其他答案,您也可以使用Instr,或者如果需要更复杂的模式匹配,可以查看正则表达式。

Sub y()

Dim s As String, v

s = "HL PNX-70[15200]"
v = Split(s, "[")
Debug.Print v(0) 'HL PNX-70
Debug.Print v(1) '15200]

MsgBox Left(v(1), Len(v(1)) - 1) '15200

v = Split(v(1), "]")
MsgBox v(0) '15200

End Sub

答案 2 :(得分:0)

您可以尝试:

contextual__pipeline_1__num_features

答案 3 :(得分:0)

这是您的代码

 Dim text, text1, text2 As String
 text = "HL PNX-70[15200]"
 text1 = Break_String(CStr(text), 0)
 text2 = Break_String1(Break_String(CStr(text), 1))

Function Break_String(a As String, pos As Integer) As String

Dim WrdArray() As String
WrdArray() = Split(a, "[")
Break_String = WrdArray(pos)

End Function

Function Break_String1(a As String) As String

Dim WrdArray() As String
WrdArray() = Split(a, "]")
Break_String1 = WrdArray(0)

End Function
相关问题