我希望能够将格式化的字符串(例如以下字符串)拆分为一个数组(稍后将在以后使用)。
示例字符串:(x,f),(5、6),(6、1),(7、8),(8、5),(9、5),(10、5),(11、3) ,(12、4),(13、1),(14、6),(15、2),(16、10)
每组括号将是一个维度,而其中的数字将构成另一个维度。例如,strArray(4,2)将产生括号4,编号2->在这种情况下为8。
我已经考虑过使用多个SPLIT函数强行强制使用它,并且我研究了正则表达式来做到这一点。我对制作一维数组很有信心,但是在二维数组方面却很挣扎。
我正在使用Microsoft Excel 2016,并且是VBA中的中级程序员。
这是我尝试处理每个括号的一种方法,但是它不会导致二维数组:
Sub EvaluateString(txtString as String)
txtArray = Split(txtSTring, "),(")
If IsEmpty(txtArray) Then L=0 Else L=UBound(txtArray)
'remove leading "(" and last ")"
txtArray(0) = Replace(txtArray(0), "(", "")
txtArray(L) = Replace(txtArray(L), ")", "")
For i = 0 to L
'Do something
next i
End Sub
Excel 2D数组格式为{"x", "f"; "5", "6"; "6", "1"}
,因此很少替换就足够了:
Sub EvaluateString(txtString as String)
txtString = Replace(Replace(txtString, " ", ""), "),(", """;""")
txtString = Replace(Replace(Replace(txtString, "(", "{"""), ")", """}"), ",", """,""")
txtArray = Evaluate(txtString) ' txtArray is now 2D array Variant(1 to x, 1 to 2)
End Sub
请注意,Application.Evaluate
方法限制为255个字符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句