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其中某字符串?
展开
 我来答
aqua516
2013-12-27 · 超过34用户采纳过TA的回答
知道答主
回答量:83
采纳率:0%
帮助的人:81.6万
展开全部
以下是可以直接运行的代码,请试用。
需要注意的是,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
WDZZYC
推荐于2018-02-27 · TA获得超过751个赞
知道小有建树答主
回答量:849
采纳率:69%
帮助的人:403万
展开全部
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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhuying0511
推荐于2016-02-28 · TA获得超过3127个赞
知道大有可为答主
回答量:2101
采纳率:82%
帮助的人:469万
展开全部

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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
善良的猪头3
推荐于2016-01-26 · TA获得超过2932个赞
知道大有可为答主
回答量:2522
采纳率:71%
帮助的人:2793万
展开全部
j=false
for i=1 to ubond(arr)
if strint=arr(i) then msgbox "String =" & string & "在arr的" & i & "位置" :j=true:exit for
next
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式