Excel精英培训网

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

[已解决]求助老师或热心网友帮忙修改下查找符合条件的vba

[复制链接]
发表于 2016-4-11 19:36 | 显示全部楼层 |阅读模式
本帖最后由 爱疯 于 2016-4-11 22:29 编辑

目前这个代码只能找到%100符合的 如果  有一条不符合就报错  请老师 '热心网友帮忙修改下

复制代码
最佳答案
2016-4-11 20:19
测试了没问题
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-4-11 19:57 | 显示全部楼层
dim 后面加一句试试
on error resume next
回复

使用道具 举报

 楼主| 发表于 2016-4-11 20:01 | 显示全部楼层
橘子红 发表于 2016-4-11 19:57
dim 后面加一句试试
on error resume next

加了 不行  提示类型不匹配    可以下载附件帮看看 吗 谢谢
回复

使用道具 举报

发表于 2016-4-11 20:19 | 显示全部楼层
Sub aa()
    Dim d As New Dictionary
    Dim arr, arr1, arr2
    Dim i As Long
    On Error Resume Next
    Set d = CreateObject("scripting.dictionary")
    arr1 = Range("F2:F" & [F65536].End(xlUp).Row)
    ReDim arr2(1 To UBound(arr1), 1 To 2)
    With Sheets("2")
        arr = .Range("A2:C" & .[A65536].End(xlUp).Row)
    End With
    For i = 1 To UBound(arr)
        d(arr(i, 1)) = Array(arr(i, 2), arr(i, 3))
    Next i
    For i = 1 To UBound(arr1)
        arr2(i, 1) = d(arr1(i, 1))(0)
        arr2(i, 2) = d(arr1(i, 1))(1)
    Next i
    Range("i2").Resize(UBound(arr2), 2) = arr2
End Sub
回复

使用道具 举报

发表于 2016-4-11 20:19 | 显示全部楼层    本楼为最佳答案   
测试了没问题
回复

使用道具 举报

 楼主| 发表于 2016-4-11 20:40 | 显示全部楼层
橘子红 发表于 2016-4-11 20:19
测试了没问题

嗯 就这样   
回复

使用道具 举报

发表于 2016-4-11 22:28 | 显示全部楼层
建议不要设置帖的权限,因为可能导致混乱的模仿。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 16:08 , Processed in 0.260038 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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