- UID
- 329276
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2005-9-27
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
下面这个程序,则从网上下载的用于改进RANK函数的VBA等程序,它可以让同等名次的数值往下排列时,不留空号,但是在对较大数字,比如35000,这样大的数值进行排位时,程序值为错误值,怀疑是定义变量为INTEGER的原因,不知用什么替代它,可以实现大数的排位功能,请指教。
Function MyRank(Number As Integer, Ref As Range, Optional a = 0)
'改进后的Rank排序函数
'by http://www.officefans.net/网友 夜半传说
'加了个a参数,当a为零或默认未输时,按降序排序
'当a为1时按升序排序----by redwin
Dim MyRef As New Collection
On Error Resume Next
For Each r In Ref
MyRef.Add r.Value, CStr(r.Value)
Next
If a = 0 Then
For Each m In MyRef
If m > Number Then i = i + 1
Next
MyRank = i + 1
Else
For Each m In MyRef
If m < Number Then i = i + 1
Next
MyRank = i + 1
End If
End Function |
|