【发布时间】:2021-09-11 17:52:30
【问题描述】:
开发一个分隔字符串的函数,我想显示 = 之后的第一个值,即 16 而不是整个分隔字符串。
希望能得到一些帮助,谢谢。
Sub Split()
Dim arr() As String
arr = Split("KeyNo = ,16,17,18", ",")
Dim name As Variant
For Each name In arr
Debug.Print name
Next
End Sub
还有这个
Sub Split2()
Dim arr() As String
arr = Split("KeyNo = 16,17,18", ",")
Dim name As Variant
For Each name In arr
Debug.Print name
Next
End Sub
【问题讨论】:
-
Split("KeyNo = 16,17,18", ",")(0)会给你 "KeyNo = 16" 和Split("KeyNo = 16,17,18", ",")(1)会给你 17 等等......它用逗号分隔值并返回基于零的索引 -
它在这条线上给出
Type Mismatch errorarr = Split("BookNo = ,16,17,18", ",")(1)@Naresh -
'而不是
Dim arr() As String使用Dim arr As String然后 arr 将是那些值。试试这个...Debug.Print Split("KeyNo = 16,17,18", ",")(0)和Debug.Print Split("KeyNo = 16,17,18", ",")(1)然后你就会明白了 -
然后出现新的错误
Compile Error For each may only iterate over a collection object or an array -
您不需要循环来提取所需的值。使用上面提到的索引,您可以提取任何位置的值(基于 0)。如果您需要一个一个所有值,那么您需要数组。 ...在您的第一个代码中
Debug.Print Split("KeyNo = ,16,17,18", ",")(1)会给您 16