全民体育健身:会写EXCEL里的宏的高手请进!

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 10:04:27
请帮忙编写一个宏
在一个格子中(如F3)输入一个分数后,在后面两个格子中分别显示等级(G3)和绩点(H3).
换算如下:

100~95 A+ 4.3
94~90 A 4
89~85 A- 3.7
84~82 B+ 3.3
81~78 B 3
77~75 B- 2.7
74~72 C+ 2.3
71~68 C 2
67~65 C- 1.7
64 D+ 1.5
63~61 D 1.3
60 D- 1
能不能将这个宏用于这一列其它的单元格呢?

楼上写的什么烂程序啊,连select都不用,简直自找麻烦……实在看不下去了,我来写一个吧。

说实话你这个程序纯粹就是个力气活,一点技术含量不需要,分数不规律,所以不好自动完成,只能手工编写判断代码。

Sub noky()
Dim P()
Dim A, b, C As Integer
P = Array("a+,4.3", "a,4.0", "a-,3.7", "b+,3.3", "b,3.0", "b-,2.7", "c+,2.3", "c,2.0", "c-,1.7", "d+,1.5", "d,1.3", "d-,1.0")
For C = 3 To 100
A = Cells(C, 6)
Select Case A
Case 95 To 100
b = 0
Case 90 To 94
b = 1
Case 85 To 89
b = 2
Case 82 To 84
b = 3
Case 78 To 81
b = 4
Case 75 To 77
b = 5
Case 72 To 74
b = 6
Case 68 To 71
b = 7
Case 65 To 67
b = 8
Case Is = 64
b = 9
Case 61 To 62
b = 10
Case Is = 60
b = 11
End Select
Cells(C, 7) = Left(P(b), 2)
Cells(C, 8) = Right(P(b), 3)
Next
End Sub

如果你想用到其他单元格,我抽空再给你完善一下吧。或者编写个函数。

修改好了,加上了一个用户窗体,在窗体上输入你希望开始和结束的行列即可。需要的话联系我:
wzz3@netease.com

在Worksheet_SelectionChange里添加

a% = Range("F3").Value
If a% <= 100 And a% >= 95 Then
Range("G3").Value = "A+"
Range("H3").Value = "4.3"
End If
If a% <= 94 And a% >= 90 Then
Range("G3").Value = "A"
Range("H3").Value = "4"
End If
If a% <= 89 And a% >= 85 Then
Range("G3").Value = "B+"
Range("H3").Value = "3.3"
End If

其他的自己填,输入数据后,鼠标在其他格子点下就可以了