
利用excel vba写一个程序:模糊查找并返回所有位置 15
vlookup只能查找到一个位置,我想用vba达到一个目的:模糊查找并返回所有位置。如下图所示,需要查找的字符串是C1,查找区域是A1:A14,我写了如下代码,但检查了好...
vlookup只能查找到一个位置,我想用vba达到一个目的:模糊查找并返回所有位置。如下图所示,需要查找的字符串是C1,查找区域是A1:A14,我写了如下代码,但检查了好久,只能找到第一个,而且当C1变成A2:A14其他内容就会返回#VALUE!的结果。麻烦各位大神帮我检查一下是哪里出错了。
vba中的代码如下:
Public Function acclookup(x, range, num)
Dim m, n, i As Integer
m = 1
n = range.Rows.Count
i = 0
For m = 1 To n
msg = Application.WorksheetFunction.Find(x, range.Cells(m, 1))
If IsNumeric(msg) = True Then
i = i + 1
End If
If i = num Then Exit For
Next m
If i = 0 Then
acclookup = "查找结束"
Else
acclookup = m
End If
End Function
PS.参数num是为了方便在excel中输入column(A1),这样向右拉时,可以依次把所有位置都找出来。方便后续添加index进行索引。
我只有15财富值,全贡献出来了。 展开
vba中的代码如下:
Public Function acclookup(x, range, num)
Dim m, n, i As Integer
m = 1
n = range.Rows.Count
i = 0
For m = 1 To n
msg = Application.WorksheetFunction.Find(x, range.Cells(m, 1))
If IsNumeric(msg) = True Then
i = i + 1
End If
If i = num Then Exit For
Next m
If i = 0 Then
acclookup = "查找结束"
Else
acclookup = m
End If
End Function
PS.参数num是为了方便在excel中输入column(A1),这样向右拉时,可以依次把所有位置都找出来。方便后续添加index进行索引。
我只有15财富值,全贡献出来了。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询