我想使用vba
代碼在('和')之間提取數據。 例如從string =" ('128003848885492'), ('128003848885502')"
。我需要128003848885492
和128003848885502
,並需要分別在其他文件中比較這些值。使用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 –