Excel精英培训网

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

[已解决]排序位置代码

[复制链接]
发表于 2014-5-18 14:02 | 显示全部楼层 |阅读模式
本帖最后由 642070295 于 2014-5-18 20:47 编辑

请各位大师帮忙看一下这个排序位置代码怎么表达:
                                                  先谢了!
19
18
17
12
12
12
11
10
9
[tr] [/tr]
[tr] [/tr]
[tr] [/tr]
效果要求说明:application.match(12,range("a1:a"&  range("a1048576").end(xlup).row),-1)显示的是第一个符合条件的位置4,我要的效果是:如果有重复值,则显示重复值的最后一个的位置(即显示6).用代码怎么表达呢?

最佳答案
2014-5-18 17:10
  1. Sub Macro1()
  2. Dim arr, i&
  3. arr = Range("a1").CurrentRegion
  4. For i = UBound(arr) To 1 Step -1
  5.     If arr(i, 1) >= 12 Then MsgBox i: Exit Sub
  6. Next
  7. End Sub
复制代码
发表于 2014-5-18 14:15 | 显示全部楼层
  1. Sub test()
  2.     Dim rng As Range
  3.     Set rng = Range("a:a").Find(12, , , xlWhole, , xlPrevious)
  4.     If rng Is Nothing Then
  5.         MsgBox "未找到要查找的值"
  6.     Else
  7.         MsgBox rng.Row
  8.     End If
  9. End Sub
复制代码
回复

使用道具 举报

发表于 2014-5-18 15:07 | 显示全部楼层
只要把你最后的“-1”改成“1”就好了
回复

使用道具 举报

 楼主| 发表于 2014-5-18 15:12 | 显示全部楼层
Zipall 发表于 2014-5-18 14:15

麻烦老师注释一下这句吧 Set rng = Range("a:a").Find(12, , , xlWhole, , xlPrevious)
回复

使用道具 举报

发表于 2014-5-18 15:25 | 显示全部楼层
642070295 发表于 2014-5-18 15:12
麻烦老师注释一下这句吧 Set rng = Range("a:a").Find(12, , , xlWhole, , xlPrevious)

看下range.find的帮助就知道了

大意是a列从下往上查找值为12的单元格.
回复

使用道具 举报

 楼主| 发表于 2014-5-18 16:11 | 显示全部楼层
Zipall 发表于 2014-5-18 15:25
看下range.find的帮助就知道了

大意是a列从下往上查找值为12的单元格.

为什么a列不是从上往下查找呢?a列已经是降序了的,而且我要找的这个值的位置是在已降序的a列中的前部分数据里的,这样从上往下查找是不是快点呢?因为数据量太大,我需要运行处理数据的代码速度快点!需要怎么修改代码吗?
回复

使用道具 举报

 楼主| 发表于 2014-5-18 16:44 | 显示全部楼层
Zipall 发表于 2014-5-18 14:15

不好意思,可能是我没有说清楚,我把数据重新处理一下:

19
18
17
13
13
13
11
10
9
效果要求是:1、在a列(已降序)中查找大于等于12的最小值所在的行(如果该最小值有重复值时,则显示该重复值的最后一个所在的行(即应该显示第6行,而不是第4行,也不是第5行)。

点评

模拟结果,把excel文件压缩上传  发表于 2014-5-18 17:01
回复

使用道具 举报

发表于 2014-5-18 17:10 | 显示全部楼层    本楼为最佳答案   
  1. Sub Macro1()
  2. Dim arr, i&
  3. arr = Range("a1").CurrentRegion
  4. For i = UBound(arr) To 1 Step -1
  5.     If arr(i, 1) >= 12 Then MsgBox i: Exit Sub
  6. Next
  7. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2014-5-18 20:42 | 显示全部楼层
dsmch 发表于 2014-5-18 17:10

谢谢了!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 07:16 , Processed in 0.512319 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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