Excel精英培训网

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

[已解决]如何返回地址

[复制链接]
发表于 2013-11-16 10:50 | 显示全部楼层 |阅读模式
依次返回最大五个数的地址。
见附件里
最佳答案
2013-11-16 11:09
本帖最后由 xdragon 于 2013-11-16 11:13 编辑
  1. Sub t()
  2. Dim i As Byte, rn As Range
  3. Dim tmp(1 To 5)
  4. For i = 1 To 5
  5.   tmp(i) = WorksheetFunction.Large(Range("B2:C17"), i) '如果不是太多的单元格,可以把这句放到下面的循环中,取消这个循环
  6. Next
  7. For i = 1 To 5
  8.   For Each rn In Range("B2:C17")
  9.     If rn = tmp(i) Then tmp(i) = rn.Address
  10.   Next
  11. Next
  12. Range("E2").Resize(5) = Application.Transpose(tmp)
  13. End Sub
复制代码

求助.rar

8.36 KB, 下载次数: 18

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-11-16 11:09 | 显示全部楼层    本楼为最佳答案   
本帖最后由 xdragon 于 2013-11-16 11:13 编辑
  1. Sub t()
  2. Dim i As Byte, rn As Range
  3. Dim tmp(1 To 5)
  4. For i = 1 To 5
  5.   tmp(i) = WorksheetFunction.Large(Range("B2:C17"), i) '如果不是太多的单元格,可以把这句放到下面的循环中,取消这个循环
  6. Next
  7. For i = 1 To 5
  8.   For Each rn In Range("B2:C17")
  9.     If rn = tmp(i) Then tmp(i) = rn.Address
  10.   Next
  11. Next
  12. Range("E2").Resize(5) = Application.Transpose(tmp)
  13. End Sub
复制代码
回复

使用道具 举报

发表于 2013-11-16 11:14 | 显示全部楼层
Sub zuida()
my = Application.WorksheetFunction.Large(Range("b2:c17"), 6)
For Each rn In Range("b2:c17")
    If rn > my Then
     n = n + 1
     Cells(n + 1, 5) = rn.Address
     End If
Next

End Sub

评分

参与人数 1 +3 收起 理由
danio112 + 3 赞一个!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2013-11-16 12:28 | 显示全部楼层
顺⑦.zì繎。 发表于 2013-11-16 11:14
Sub zuida()
my = Application.WorksheetFunction.Large(Range("b2:c17"), 6)
For Each rn In Range("b ...

代码简洁,输出了相应的结果,但不是从最大到最小
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-23 20:55 , Processed in 0.243046 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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