VBA使用2个分隔字符的双分割数组值



在VBA中,我试图使用char#将以下示例字符串拆分为数组,然后使用char:再次拆分每个数组位置的值,我们如何实现它。

类别:议程#构造:区域图#ink_ratio_bus:#has_image:#image_size:#has_idons:n#color_type:#has_cartoon:#has_three_d:#has_shading:#shape:#has_graph:#has_tables:#sid:0003#parent:amod_test#parent_id:#node:#theme:默认

我尝试了以下操作,但空值在此函数中创建错误

Dim subVals() 
subVals = Split(oSh.TextFrame.TextRange.Text, "#")
cmbConstruct.Value = Right(subVals(1), Len(Left(subVals(1), 10)))
cmbInk.Value = Right(subVals(2), Len(Left(subVals(2), 6)))
cmbImages.Value = Right(subVals(3), Len(Left(subVals(3), 1)))
cmbImageSize.Value = Right(subVals(4), Len(Left(subVals(4), 1)))

Hy也许这会有所帮助:(

Sub Test()
Dim str As String
str = "category:agenda#construct:area graph#ink_ratio_bus:#has_image:#image_size:#has_icons:n#color_type:#has_cartoon:#has_three_d:#has_shading:#shape:#has_graphs:#has_tables:#sid:0003#parent:amod_test#parent_sid:#node:#theme:default"
Dim key As String, value As String
Dim keyValuePair As Variant
Dim arr As Variant
arr = Split(str, "#")
Dim i As Integer
For i = 0 To UBound(arr)
keyValuePair = Split(arr(i), ":")
key = keyValuePair(0)
value = keyValuePair(1)
Debug.Print key & "-" & value
Next i

End Sub

谢谢大家!我找到了如下解决方案:将两个分隔符替换为一个,然后用该分隔符拆分,并只从数组中取交替的奇数值。

NewString = Replace(oldString, ":", "#")
subVals = Split(NewString, "#")

从阵列中只取奇数1,3,5等