Excel精英培训网

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

[已解决]一对多查找?

[复制链接]
发表于 2013-3-19 13:28 | 显示全部楼层 |阅读模式
如图A列和B列,当我查找“笔”,则自动将笔对应的B列数据赋值给数组arr
比如:我找“笔”,那么arr=Array(3,4,5,2,1,6,9)

有什么函数吗?或哪位写个自定义函数。谢谢
最佳答案
2013-3-19 14:28
Sub 按钮1_Click()
    Dim A(), B(), i&, s&
    A = Range("a1").CurrentRegion
    For i = 2 To UBound(A)
        If A(i, 1) = "笔" Then
            s = s + 1
            ReDim Preserve B(1 To s)
            B(s) = A(i, 2)
        End If
    Next i
End Sub
因为不知道会受什么影响,只好就这样了
111.gif
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-3-19 13:37 | 显示全部楼层
Sub 按钮1_Click()
Dim arr
Range("A:B").AutoFilter Field:=1, Criteria1:="笔"
arr = Range("b:B").SpecialCells(xlCellTypeVisible)
Stop
End Sub
根据需要再改
回复

使用道具 举报

 楼主| 发表于 2013-3-19 14:09 | 显示全部楼层
爱疯 发表于 2013-3-19 13:37
Sub 按钮1_Click()
Dim arr
Range("A:B").AutoFilter Field:=1, Criteria1:="笔"

能不能不通过筛选,因为数据量比较大
回复

使用道具 举报

发表于 2013-3-19 14:14 | 显示全部楼层
传真实表吧,<30条数据就够,因为不知道会不会还要改

回复

使用道具 举报

 楼主| 发表于 2013-3-19 14:20 | 显示全部楼层
爱疯 发表于 2013-3-19 14:14
传真实表吧,

不需要改,源表就如图,你的代码是对,就是比较慢
回复

使用道具 举报

发表于 2013-3-19 14:28 | 显示全部楼层    本楼为最佳答案   
Sub 按钮1_Click()
    Dim A(), B(), i&, s&
    A = Range("a1").CurrentRegion
    For i = 2 To UBound(A)
        If A(i, 1) = "笔" Then
            s = s + 1
            ReDim Preserve B(1 To s)
            B(s) = A(i, 2)
        End If
    Next i
End Sub
因为不知道会受什么影响,只好就这样了
回复

使用道具 举报

 楼主| 发表于 2013-3-19 15:10 | 显示全部楼层
爱疯 发表于 2013-3-19 14:28
Sub 按钮1_Click()
    Dim A(), B(), i&, s&
    A = Range("a1").CurrentRegion

我设你为最佳答案!
你能帮我解决这个问题吗?http://www.excelpx.com/thread-297400-1-1.html
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 02:12 , Processed in 0.379651 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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