Excel精英培训网

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

[已解决]请教各位论坛老师,写一段VBA查找的代码

[复制链接]
发表于 2014-3-30 20:15 | 显示全部楼层 |阅读模式
本帖最后由 yslvictor 于 2014-3-30 20:40 编辑

各位老师你们好,通过各位的指导学会了不少的东西。
今请各位写个查找的代码。
查找范围:C10:C209;
D10,E10和F10是C210分出来的百、十和个位的字符(C210是3个字符的文本数字,值不定);
查找方法是从C209开始,往上查找出10个符合条件的数据,
例如:从C209开始往上查找百位等于D10的数据(D10=1),分别是C206、C199、C198、C183……,它们的下一行的数据C207、C200、C199、C184……的值分别是792、815、169、030……,放到D11往下排放。
同样的方法查找出十位等于E10的数据和个位等于F10的下一行数据。
(颜色是手动查找自行标的与代码查找无关。)
如图:
11.jpg
查找.rar (6.71 KB, 下载次数: 10)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-3-31 13:14 | 显示全部楼层    本楼为最佳答案   
  1. Sub Macro1()
  2. Dim arr, brr(1 To 10, 1 To 3), w(1 To 3)
  3. Dim i%, j&, s%
  4. x = [c210]
  5. arr = [c10:c210]
  6. For i = 1 To Len(x)
  7.     w(i) = Mid(x, i, 1)
  8. Next
  9. For i = 1 To 3
  10.     s = 0
  11.     For j = UBound(arr) - 1 To 1 Step -1
  12.         If Mid(arr(j, 1), i, 1) = w(i) Then
  13.             s = s + 1
  14.             If s > 10 Then Exit For Else brr(s, i) = arr(j + 1, 1)
  15.         End If
  16.     Next
  17. Next
  18. [d11:f20].NumberFormatLocal = "000"
  19. [d11:f20] = brr
  20. End Sub
复制代码
回复

使用道具 举报

发表于 2014-3-31 13:17 | 显示全部楼层
………………

查找.zip

10.39 KB, 下载次数: 11

回复

使用道具 举报

 楼主| 发表于 2014-3-31 15:18 | 显示全部楼层
谢谢dsmch大师,正是我要的代码,我把"000"换成"@"就是理想的代码。

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 14:17 , Processed in 0.280031 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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