Excel精英培训网

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

[已解决]帮忙修改代码,匹配数据时,陷入死循环,

[复制链接]
发表于 2022-1-4 16:20 | 显示全部楼层 |阅读模式
本帖最后由 楚雪飞扬 于 2022-1-4 16:34 编辑

帮忙修改代码,匹配数据时,陷入死循环,H列数据,从一个表匹配过来的数据!Sub 匹配Run数()
Set d = CreateObject("scripting.dictionary")
   a = Sheet2.UsedRange
   For i = 2 To UBound(a)
      d(a(i, 1)) = a(i, 3) '= a(i, 2)要匹配的列数
   Next
   For Each Rng In Range([a3], [a3].End(4)) '[b3], [b3]目标列前一列循环条件
      Rng.Offset(0, 7) = d(Rng.Offset(0, 1).Value) '匹配结果输出列,从目标列前一列开始算
   Next
End Sub
搜狗截图20220104161743.png



最佳答案
2022-1-4 16:30
修改如下紅字,請測試看看,謝謝

For Each Rng In Range([a3], [a65536].End(3))


Run数监控.rar

28.19 KB, 下载次数: 7

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2022-1-4 16:30 | 显示全部楼层    本楼为最佳答案   
修改如下紅字,請測試看看,謝謝

For Each Rng In Range([a3], [a65536].End(3))


回复

使用道具 举报

发表于 2022-1-4 16:37 | 显示全部楼层
For Each Rng In Range([a3], [a65536].End(xlUp)) '[b3], [b3]目标列前一列循环条件
      Rng.Offset(0, 7) = d(Rng.Offset(0, 1).Value) '匹配结果输出列,从目标列前一列开始算
   Next

改成标红色这样。你原来的因为是从A3到最后一个单元格,所以很慢会卡死。
使用单元格的时候注意以下几点:
1.工作表.单元格.区域,以这种格式去写,尽量不要省略工作表名

2.尽量不要使用[a3]这种简写,sheet2.range("a3")这样会比较准


回复

使用道具 举报

 楼主| 发表于 2022-1-5 08:35 | 显示全部楼层
林木水 发表于 2022-1-4 16:37
For Each Rng In Range([a3], [a65536].End(xlUp)) ', 目标列前一列循环条件
      Rng.Offset(0, 7) = d( ...

好的,谢谢帮忙解答!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 17:47 , Processed in 0.299727 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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