Excel精英培训网

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

[已解决]为什么班级排名不好用

[复制链接]
发表于 2013-8-30 00:23 | 显示全部楼层 |阅读模式
模块:
Function GetNum()
Dim Rng As Range, TempRng As Range
Dim Cnt%
Set Rng = Sheets("fenban (2)").Range("E3:E215")
For Each TempRng In Rng
  If InStr(1, TempRng.Value, "1") > 0 Or InStr(1, TempRng.Formula, "1") > 0 Then Cnt = Cnt + 1
Next
GetNum = Cnt

End Function
Function GetNum1()
Dim Rng As Range, TempRng As Range
Dim Cnt%
Set Rng = Sheets("fenban (2)").Range("E3:E215")
For Each TempRng In Rng
  If InStr(1, TempRng.Value, "2") > 0 Or InStr(1, TempRng.Formula, "2") > 0 Then Cnt = Cnt + 1
Next
GetNum1 = Cnt

End Function
Function GetNum2()
Dim Rng As Range, TempRng As Range
Dim Cnt%
Set Rng = Sheets("fenban (2)").Range("E3:E215")
For Each TempRng In Rng
  If InStr(1, TempRng.Value, "3") > 0 Or InStr(1, TempRng.Formula, "3") > 0 Then Cnt = Cnt + 1
Next
GetNum2 = Cnt

End Function
Function GetNum3()
Dim Rng As Range, TempRng As Range
Dim Cnt%
Set Rng = Sheets("fenban (2)").Range("E3:E215")
For Each TempRng In Rng
  If InStr(1, TempRng.Value, "4") > 0 Or InStr(1, TempRng.Formula, "4") > 0 Then Cnt = Cnt + 1
Next
GetNum3 = Cnt

End Function



按钮 班级排名:

Private Sub CommandButton2_Click()

Dim Rng As Range
Dim i As Integer
Call GetNum
i = GetNum + 3
  Set Rng = Range(Cells(3, 18), Cells(GetNum + 2, 18))
    Rng.FormulaR1C1 = "=RANK(RC[-1],R3C[-1]:R" & GetNum + 2 & "C[-1])"
    Set Rng = Nothing
   End



Call GetNum1


  Set Rng = Range(Cells(i, 18), Cells(GetNum1 + GetNum + 2, 18))
    Rng.FormulaR1C1 = "=RANK(RC[-1],R3C[-1]:R" & GetNum1 + GetNum + 2 & "C[-1])"
    Set Rng = Nothing

  End


Call GetNum2

  Set Rng = Range(Cells(GetNum1 + GetNum + 3, 18), Cells(GetNum2 + GetNum1 + GetNum + 2, 18))
   Rng.FormulaR1C1 = "=RANK(RC[-1],R3C[-1]:R" & GetNum2 + GetNum1 + GetNum + 2 & "C[-1])"
    Set Rng = Nothing
End

Call GetNum3
  Set Rng = Range(Cells(GetNum2 + GetNum1 + GetNum + 3, 18), Cells(GetNum3 + GetNum2 + GetNum1 + GetNum + 2, 18))
   Rng.FormulaR1C1 = "=RANK(RC[-1],R3C[-1]:R" & GetNum3 + GetNum2 + GetNum1 + GetNum + 2 & "C[-1])"
    Set Rng = Nothing







    End Sub


就是按 班级排名 不好用,请高手指点
最佳答案
2013-8-30 09:02
怎么只有getnum有运行,其它的没有?还有call getnum中getnum不返回的,这个不是引用。因为定义为function,只要一用到就调用一次,可以定义一个全局变量

工作簿1.zip

76.93 KB, 下载次数: 5

学生成绩分析

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-8-30 09:02 | 显示全部楼层    本楼为最佳答案   
怎么只有getnum有运行,其它的没有?还有call getnum中getnum不返回的,这个不是引用。因为定义为function,只要一用到就调用一次,可以定义一个全局变量
回复

使用道具 举报

 楼主| 发表于 2013-8-30 14:04 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-26 13:38 , Processed in 0.601563 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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