Excel精英培训网

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

[已解决]求助一个查找的问题

[复制链接]
发表于 2013-2-1 16:55 | 显示全部楼层 |阅读模式
我们希望按照D1的内容,将表“入库检查”里所有一致的行找出来,并写进表1的E列至I列中,不知道该怎么用VBA来写,试验了几个不行,我知道用数组可以,但是那个速度太慢,每动一下就得重新计算一次,所以请教一下老师们有没有办法?

第二点,我想能不能把所有没有检查的编码输入一个单元格,用,号隔开,然后在后面统一写入检查结果,写结果进去与编号对应的位置上?
最佳答案
2013-2-1 17:34
副本X.rar (11.54 KB, 下载次数: 17)

列出所有.zip

17.53 KB, 下载次数: 5

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-2-1 17:34 | 显示全部楼层    本楼为最佳答案   
副本X.rar (11.54 KB, 下载次数: 17)
回复

使用道具 举报

 楼主| 发表于 2013-2-2 09:01 | 显示全部楼层
恩,非常感谢这位老师,这个正是我想要的,谢谢您了
回复

使用道具 举报

发表于 2022-2-8 14:56 | 显示全部楼层
Sub 查询()

Dim arr, brr, crr, ar, s5$, x&, c&, m&, ran$
Application.ScreenUpdating = False
arr = Sheet2.Range("a1").CurrentRegion
ReDim brr(1 To UBound(arr), 1 To 5)
With Sheets("sheet1")
    s5 = .[d2]
End With
For x = 2 To UBound(arr)
    If arr(x, 5) = s5 Then
        ar = Array(0, 1, 2, 3, 4, 5) '这里面是要查询的列,加个零是应为数组的的下标是零开始起,这样写法可以跳列查询
        m = m + 1
        For y = 1 To 5                  '   这是根据上面的数组的的个数从零开始计算,第七个的数字是8 也就是第8列
            brr(m, y) = arr(x, ar(y))
        Next
    End If
Next
With Sheets("sheet1")
    If m > 0 Then
        .Range("E2:I65536").Clear
        .Range("e" & .Range("e65536").End(xlUp).Row + 1).Resize(m, 5) = brr
    End If
End With
Application.ScreenUpdating = True
End Sub
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 21:54 , Processed in 0.305967 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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