使用vba代码提取('和')数据
我想使用vba
代码在('和')之间提取数据。 例如从string =" ('128003848885492'), ('128003848885502')"
。我需要128003848885492
和128003848885502
,并需要分别在其他文件中比较这些值。使用vba代码提取('和')数据
请建议。
在此先感谢。
删除不必要的字符,留下逗号来拆分字符串。这会给你一个字符串数组。
Sub Example()
Dim StringValues As String
Dim ArrayValues() As String
Dim Value As Variant
StringValues = "('128003848885492'),('128003848885502')"
'Remove unnecessary characters leaving the commas to split the string
StringValues = Replace(StringValues, ")", "")
StringValues = Replace(StringValues, "(", "")
StringValues = Replace(StringValues, "'", "")
ArrayValues = Split(StringValues, ",")
For Each Value In ArrayValues
Debug.Print CDbl(Value)
Next
End Sub
仅有'ArrayValues =分段(StringValues ,“'”)'和'For i = 1 to ubound(ArrayValues)Step 2',然后'Debug.Print cdbl(ArrayValues(i))'不需要做任何替换。 –
请看这里http://imgur.com/a/vLJIo –
就我个人而言,我会创建一个声明第二个数组为长或双,并将数字添加到它。替换原因是为了简化比较。他将使用多个阵列对多个文件进行比较。数组越简单,比较越容易。 – 2016-07-23 20:39:19
的另一种方法,更一般地和分离只有数字:
Dim str, newstr As String
Dim arr() As String
Dim i As Integer
str = "('128003848885492'), ('128003848885502')"
For i = 0 To Len(str) - 1
If IsNumeric(Mid(str, i + 1, 1)) Or Mid(str, i + 1, 1) = "," Then
newstr = newstr & Mid(str, i + 1, 1) 'We extract only the numbers and the comma.
End If
Next i
arr = Split(newstr, ",")
MsgBox (arr(0)) 'first number
MsgBox (arr(1)) 'second number
所以拆分对'''和使用位置1和3 –