EXCEL VBA如何判断一个字符串是否等于数组中的值?
string="abc"arr=Array("cyb","dbv","ero","eu","fxf","gbb","jyn","udn","uup","fxa","fxb...
string = "abc"
arr = Array("cyb", "dbv", "ero", "eu", "fxf", "gbb", "jyn", "udn", "uup", "fxa", "fxb", "fxc", "fxe", "fxy")
如何判断string字符串是否等于arr其中某字符串? 展开
arr = Array("cyb", "dbv", "ero", "eu", "fxf", "gbb", "jyn", "udn", "uup", "fxa", "fxb", "fxc", "fxe", "fxy")
如何判断string字符串是否等于arr其中某字符串? 展开
展开全部
以下是可以直接运行的代码,请试用。
需要注意的是,Array函数给arr数组赋值后,arr数组的下界是0,而不是1,可以用Lbound(arr)检测。如果在For...Next循环中从1开始循环,当所要查找的字符正好是arr(0)时,则会漏掉。相应的,如果发现有字符匹配,则数组中应该是第i+1个元素与目标字符串匹配。
不知以上的说明是否清楚,希望对你有所帮助。
Sub stringMatch()
Dim arr As Variant
Dim i As Integer, s As String
Dim matchLabel As Boolean
matchLabel = False
s = "abc"
arr = Array("cyb", "dbv", "ero", "eu", "fxf", "gbb", "jyn", "udn", "uup", "fxa", "fxb", "fxc", "fxe", "fxy")
For i = LBound(arr) To UBound(arr)
If arr(i) = "abc" Then
MsgBox "数组arr中第" & i+1 & "个元素等于" & s
matchLabel = True
End If
Next i
If matchLabel = False Then
MsgBox "数组arr中没有元素等于" & s
End If
End Sub
需要注意的是,Array函数给arr数组赋值后,arr数组的下界是0,而不是1,可以用Lbound(arr)检测。如果在For...Next循环中从1开始循环,当所要查找的字符正好是arr(0)时,则会漏掉。相应的,如果发现有字符匹配,则数组中应该是第i+1个元素与目标字符串匹配。
不知以上的说明是否清楚,希望对你有所帮助。
Sub stringMatch()
Dim arr As Variant
Dim i As Integer, s As String
Dim matchLabel As Boolean
matchLabel = False
s = "abc"
arr = Array("cyb", "dbv", "ero", "eu", "fxf", "gbb", "jyn", "udn", "uup", "fxa", "fxb", "fxc", "fxe", "fxy")
For i = LBound(arr) To UBound(arr)
If arr(i) = "abc" Then
MsgBox "数组arr中第" & i+1 & "个元素等于" & s
matchLabel = True
End If
Next i
If matchLabel = False Then
MsgBox "数组arr中没有元素等于" & s
End If
End Sub
展开全部
Sub zz()
s = "abc"
arr = Array("cyb", "dbv", "ero", "eu", "fxf", "gbb", "jyn", "udn", "uup", "fxa", "fxb", "fxc", "fxe", "fxy")
If UBound(Filter(arr, s)) > -1 Then
MsgBox "等于"
Else
MsgBox "不等于"
End If
End Sub
s = "abc"
arr = Array("cyb", "dbv", "ero", "eu", "fxf", "gbb", "jyn", "udn", "uup", "fxa", "fxb", "fxc", "fxe", "fxy")
If UBound(Filter(arr, s)) > -1 Then
MsgBox "等于"
Else
MsgBox "不等于"
End If
End Sub
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
VBA中数组用arr()表示,字符串可通过inputbox来手工输入,
判断语句为for..if..then..next,
举例如下
Sub tst()
Dim arr(1 To 10)
Dim i%, p As String
p = InputBox("tst")
For i = 1 To 10
arr(i) = i & "个"
If p = arr(i) Then MsgBox i
Next
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
j=false
for i=1 to ubond(arr)
if strint=arr(i) then msgbox "String =" & string & "在arr的" & i & "位置" :j=true:exit for
next
for i=1 to ubond(arr)
if strint=arr(i) then msgbox "String =" & string & "在arr的" & i & "位置" :j=true:exit for
next
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询