Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1742|回复: 1

一对多查找?(高级)

[复制链接]
发表于 2013-3-19 15:04 | 显示全部楼层 |阅读模式
  1. Public Function FindNB(sheetName As String, findName As String, needFind As String) As Variant
  2. '这个函数返回一个数组arr
  3. '.........
  4. FindNB = arr
  5. End Function

  6. Sub test()
  7. FindNB "Sheet1", "笔", "C"
  8. End Sub
复制代码
根据表名,索引值以及索引值对应的列查找,返回一个数组。
如:FindNB "Sheet1", "笔", "C"
返回一纬数组:Array(1,2,3,4,2,3)

注意数据量很大,大概10万行,谁能给个快捷的方法?
在在在.gif

查找.rar

7.25 KB, 下载次数: 16

发表于 2013-3-19 15:40 | 显示全部楼层
Public Function FindNB(sheetName As String, findName As String, needFind As String)
    '这个函数返回一个数组arr
    '.........自行添加防错处理
    Dim A, B(), i&, s&, c%
   
    c = Cells(1, needFind).Column
    A = Sheets(sheetName).Range("a1").CurrentRegion
   
    For i = 2 To UBound(A)
        If A(i, 1) = findName Then
            s = s + 1
            ReDim Preserve B(1 To s)
            B(s) = A(i, c)
        End If
    Next i
   
    FindNB = B
End Function




Sub test()
    Dim arr()
   
    arr = FindNB("Sheet1", "笔", "C")
    Stop
End Sub



查找.rar

9.19 KB, 下载次数: 32

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-5 23:05 , Processed in 0.644630 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表