本示例有以下启发意义:
1. 管理学方面-员工绩效考核中的互评,应该属于360度测评中的一种,在没有在线工具时,可使用Excel来完成
2. 可将相对复杂的功能,作为子程序来实现,然后在其他子程序中进行调用。有利于保持代码结构的清晰。
3. 第一次使用按行排序,有意思。
界面:
代码:
Option Explicit
'定义Inum为全局变量,用来接收每个人的总数
Dim Inum As Integer
Sub Zhuanhuan()
'关闭执行程序时发生的屏幕更新现象,加快运行速度
Application.ScreenUpdating = False
Dim i As Integer, j As Integer '定义循环变量
Dim str As String '定义中间交换变量
For i = 2 To 19 '外层循环为列循环
For j = 4 To 21 '内层循环为行循环
'使每个老师的数据相加
str = str + Cells(j, i).Value
Next j
zhuan (str) '将总字符进行处理
'将num赋给cells(j,i),每个老师的总数就得出来了
Cells(j, i) = Inum
str = "" '将公共中间变量str清为空
Inum = 0 '将全局变量num清为0
Next i
End Sub
Sub zhuan(ByVal str As String) '转换字母为数字的函数
Dim i As Integer '定义自变量i
'定义自变量anum,bnum,cnum用来计算a,b,c出现的次数
Dim Ianum As Integer, Ibnum As Integer, Icnum As Integer
'定义stra用来取出字符串中的字母进行比较
Dim stra As String
For i = 1 To Len(str)
'取出字符串中的字母进行比较
stra = Mid(str, i, 1)
Select Case stra
Case "a"
Ianum = Ianum + 1
Case "b"
Ibnum = Ibnum + 1
Case "c"
Icnum = Icnum + 1
End Select
Next i
'计算总和
Inum = Ianum * 10 + Ibnum * 8 + Icnum * 6
'此时zhuan程序执行完,返回zhuanhuan程序
End Sub