我有这样一个字符串的字符串:拆分如果与RQ开始在VBA
RQ12123RQ32434RQu9798
我需要拆分RQ的字符串。预计输出ID:
RQ12123,RQ32434,RQu9798
我的代码:
WrdArray() = Split(Sheets(SdomCompareResultSheet).Cells(i, 5).Value)
我有这样一个字符串的字符串:拆分如果与RQ开始在VBA
RQ12123RQ32434RQu9798
我需要拆分RQ的字符串。预计输出ID:
RQ12123,RQ32434,RQu9798
我的代码:
WrdArray() = Split(Sheets(SdomCompareResultSheet).Cells(i, 5).Value)
坚持你的代码:
Dim WrdArray As Variant
WrdArray = Split(Trim(Replace(Sheets(SdomCompareResultSheet).Cells(i, 5).Value, "RQ", " RQ")))
一个更通用的代码:
Function GetArray(strng As String, id As String) As Variant
GetArray = Split(Trim(Replace(strng, id, " " & id)))
End Function
,你可以在你的 “主” 子利用如下
Sub main()
Dim WrdArray As Variant
Dim strng As String
strng = "RQ12123RQ32434RQu9798"
WrdArray = GetArray(strng, "RQ")
End Sub
少一些通用代码
假设哟你知道,前两个字母是总是通过解析字符串ID:
Function GetArray(strng As String) As Variant
GetArray = Split(Trim(Replace(strng, Left(strng, 2), " " & Left(strng, 2))))
End Function
被利用类似如下:
Sub main()
Dim WrdArray As Variant
Dim strng As String
strng = "RQ12123RQ32434RQu9798"
WrdArray = GetArray(strng)
End Sub
这是一个通用的解决方案,或仅用于这个数据,iam期待一个通用的解决方案 –
这是一个适用于您在问题中显示的代码的通用解决方案。只要用's'替换'Sheets(SdomCompareResultSheet).Cells(i,5).Value''''''s'是你想要处理的字符串 – user3598756
考虑:
Sub dural()
Dim s As String, t As String
s = "RQ12123RQ32434RQu9798"
t = Mid(Replace(s, "RQ", ",RQ"), 2)
MsgBox t
End Sub
编辑#1:
在输入字符串“RQ”的每一次出现将得到昏迷预置到它(除了第一个“RQ”)
EDIT#2:
为了将结果存储在一个阵列:
Sub dural()
Dim s As String, t As String
s = "RQ12123RQ32434RQu9798"
t = Mid(Replace(s, "RQ", ",RQ"), 2)
MsgBox t
ary = Split(t, ",")
End Sub
如果有多个ID以RQ开头,此代码是否可以工作? –
我需要将结果存储在数组中 –
@PrakashSingh请参阅我的**编辑#2 ** –
你所期望的输出到一个单元格或三个? –
iam expect数组输出,对于上面的场景,数组大小应该是3 –
我的代码WrdArray()= Split(Sheets(SdomCompareResultSheet).Cells(i,5).Value) –