Excel 使用vba代码在(';和';之间提取数据
我想使用Excel 使用vba代码在(';和';之间提取数据,excel,vba,Excel,Vba,我想使用vbacode在('and')之间提取数据。 e、 g fromstring=“('128003848885492'),('128003848885502')”。我需要128003848885492和128003848885502并需要分别比较其他文件中的这些值 请建议 提前感谢。删除不必要的字符,留下逗号以拆分字符串。这将为您留下一个数字字符串数组 Sub Example() Dim StringValues As String Dim ArrayValues()
vba
code在('and')之间提取数据。
e、 g fromstring=“('128003848885492'),('128003848885502')”
。我需要128003848885492
和128003848885502
并需要分别比较其他文件中的这些值
请建议
提前感谢。删除不必要的字符,留下逗号以拆分字符串。这将为您留下一个数字字符串数组
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
删除不必要的字符,留下逗号以拆分字符串。这将为您留下一个数字字符串数组
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
另一种方式,更一般,只分隔数字:
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
另一种方法,更一般,只分隔数字:
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。在上拆分并使用位置1和3。只需ArrayValues=split(StringValues,“”)
和将i=1拆分为ubound(ArrayValues)步骤2
然后调试.Print cdbl(ArrayValues(i))
无需进行任何替换。我个人会创建一个声明为long或double的第二个数组,并将数字添加到其中。替换的原因是为了简化比较。他将使用多个数组对多个文件进行比较。数组越简单,比较就越容易。以我的方式进行比较还有其他好处。OP可以放心地在我的数组上使用工作表函数,也可以使用range.resize.JustArrayValues=Split(StringValues,“”)
和将数组复制到一个范围中,以便i=1的数组进行ubound(ArrayValues)步骤2
然后调试.Print cdbl(ArrayValues(i))
无需进行任何替换。我个人会创建一个声明为long或double的第二个数组,并将数字添加到其中。替换的原因是为了简化比较。他将使用多个数组对多个文件进行比较。数组越简单,比较就越容易。以我的方式进行比较还有其他好处。OP可以放心地在我的数组上使用工作表函数,也可以使用range.resize将数组复制到一个范围中。