Excel精英培训网

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

[已解决]VBA 找數組中最大值的位置 , 如果有兩個以上最大值 , 取最靠後那個的位置

[复制链接]
发表于 2016-12-15 14:24 | 显示全部楼层 |阅读模式
本帖最后由 tiger7082 于 2016-12-15 16:44 编辑

各位先進請幫個忙 想不出來  我想找數組中最大值的位置 , 如果有兩個以上最大值 , 取最靠後那個的位置

sorry  我說清楚點

我需在以下數組中找到最大值98 ,並取得98是第三個值
775598361255


但 當動態數組變為以下時 , 找到最大值為88 , 但有兩個88 最大值 , 我要取 88是第五個值  也就是靠後的
457488528833

最佳答案
2016-12-15 15:22
如果数据在Range("a1:c100")。。。。。。。

  1. Sub tt()
  2.     Dim xrng As Range
  3.     Set xrng = Range("a1:c100")
  4.     xmax = Application.WorksheetFunction.Max(xrng)
  5.     xstr = xrng.Find(xmax, lookat:=xlWhole, searchdirection:=xlPrevious).Address
  6.     MsgBox xstr
  7. End Sub
复制代码
发表于 2016-12-15 14:34 | 显示全部楼层
提问请上传EXCEL压缩文件,说明要求并模拟结果,言语太苍白
回复

使用道具 举报

发表于 2016-12-15 14:40 | 显示全部楼层
用函數哇呀.
=LOOKUP(,0/(A1:A100=MAX(A1:A100)),ROW(A1:A100))
回复

使用道具 举报

发表于 2016-12-15 15:22 | 显示全部楼层    本楼为最佳答案   
如果数据在Range("a1:c100")。。。。。。。

  1. Sub tt()
  2.     Dim xrng As Range
  3.     Set xrng = Range("a1:c100")
  4.     xmax = Application.WorksheetFunction.Max(xrng)
  5.     xstr = xrng.Find(xmax, lookat:=xlWhole, searchdirection:=xlPrevious).Address
  6.     MsgBox xstr
  7. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2016-12-15 16:13 | 显示全部楼层
本帖最后由 tiger7082 于 2016-12-15 16:31 编辑
grf1973 发表于 2016-12-15 15:22
如果数据在Range("a1:c100")。。。。。。。


再請教一下  如果得出 xstr = $G$1  如何將其中的 G 設為變量使用   所以還是用數組嗎   非常感謝
回复

使用道具 举报

发表于 2016-12-15 19:34 | 显示全部楼层
要怎样使用,最好说清楚,上个附件说明问题
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 12:40 , Processed in 0.263728 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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