首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在excel vba中查找字母数字之间的前2个最大值

在excel vba中查找字母数字之间的前2个最大值
EN

Stack Overflow用户
提问于 2021-04-15 15:13:58
回答 1查看 84关注 0票数 0

需要找到字母数字之间的前2个最大值。数据如下:"2FB","4CB","0FW","4CW“

这里的输出将类似于: 4CB,4CW。

字母表总是一样的..只有数字才会改变。上面的数据是一个函数的输出,我将它存储在4个字符串变量中。

任何帮助都是非常感谢的。

前面,我已经将输出保存在每个excel行中,并使用下面的vba代码来检索最大值。但它并没有像预期的那样工作,因为我现在需要前两个值

代码语言:javascript
运行
复制
Evaluate("IF(MAX(COUNTIF(" & rng.Address & "," & rng.Address & "))>2,INDEX(" & rng.Address & ",MATCH(MAX(COUNTIF(" & rng.Address & "," & rng.Address & ")),COUNTIF(" & rng.Address & "," & rng.Address & "),0)),0)")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-15 15:32:51

使用ArrayList对象怎么样:

代码语言:javascript
运行
复制
Sub Test()

'Initialize your input:
Dim arr(): arr = Array("2FB", "4CB", "0FW", "4CW")

'Create the arraylist object:
With CreateObject("System.Collections.ArrayList")
    
    'Loop over your array to load arraylist:
    For Each el In arr
        .Add el
    Next
    
    'Sort our array ascending and reverse the outcome:
    .Sort
    .Reverse
    
    'Demo lines, we allready got our two largest values:
    Debug.Print .Item(0)
    Debug.Print .Item(1)
    
    'Slice away redundant items and report back in array:
    .RemoveRange 2, .Count - 2
    arr = .ToArray
      
End With

End Sub

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67103857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档