MSCBSC 移动通信论坛
搜索
登录注册
网络优化工程师招聘专栏 4G/LTE通信工程师最新职位列表 通信实习生/应届生招聘职位
 

  • 阅读:5255
  • 回复:4
【例子】EXCEL-VBA编程-在网优数据整理分析中的应用-第二讲EXCEL-VBA控制语句
郑东文
初级会员
鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

积分 140
帖子 27
威望 5681 个
礼品券 0 个
专家指数 5
注册 2019-1-2
专业方向 
回答问题数 0
回答被采纳数 0
回答采纳率 0%
 
发表于 2019-12-12 20:44:51  只看楼主 

第二讲 例子.xls

已知某班级学生单科成绩数据(如表),成绩为100分满分,其中英文级别和中文级别列数据未知,请按如下评判规则评级并输出,成绩落在[80,100]为A级对应优秀,成绩落在[60,80)为B级对应良好,成绩落在(0,60)定义为C级对应不合格,成绩超出(0,100]范围为D级对应异常。

姓名

成绩

英文级别

中文级别

张一

81 



张二

99 



张三

80 



张四

98 



李一

91 



李二

13 



李三

28 



李四

41 



郑一

98 



郑二

56 



郑三

48 



郑四

74 



ͼƬ2-1211.png

代码-->>




'>>>通过For循环遍历Astr_Score数组第一列数据,并根据规则判断成绩级别>>>

For int_N = 1 To int_ScoreCount

    int_Score = Int(Astr_Score(int_N, 1)) '读取成绩数据,Astr_Score为字符串类型,用int()函数转换成整型

    

    '用if判断成绩英文级别

    If int_Score >= 80 And int_Score <= 100 Then

        str_EngLevel = "A"

    ElseIf int_Score >= 60 And int_Score < 80 Then

        str_EngLevel = "B"

    ElseIf int_Score > 0 And int_Score < 60 Then

        str_EngLevel = "C"

    Else

        str_EngLevel = "D"

    End If

    Astr_Score(int_N, 2) = str_EngLevel '英文级别结果存入Astr_Score数组第int_N行第二列

    

    '用select判断成绩中文级别

    Select Case str_EngLevel

    Case "A"

        str_ChLevel = "优秀"

    Case Is = "B"

        str_ChLevel = "良好"

    Case "C"

        str_ChLevel = "不及格"

    Case "D"

        str_ChLevel = "异常"

    End Select

    Astr_Score(int_N, 3) = str_ChLevel '中文级别结果存入Astr_Score数组第int_N行第三列

Next int_N

'<<<通过For循环遍历Astr_Score数组第一列数据,并根据规则判断成绩级别<<<




'>>>通过For循环遍历Astr_Score数组第二列和第三列数据,将英文级别和中文级别数据填入Sheet1表格对应的列(3,4)>>>

For int_N = 1 To int_ScoreCount

    str_EngLevel = Astr_Score(int_N, 2) '读取英文级别

    str_ChLevel = Astr_Score(int_N, 3) '读取中文级别

    int_R = int_N + 1 'Astr_Score第一行数据写到Sheet1第二行,以此类推,Astr_Score第int_N行数据写到Sheet1第int_N+1行,以此类推

    Sheet1.Cells(int_R, 3) = str_EngLevel '英文级别数据写入sheet1第int_r行,第3列

    Sheet1.Cells(int_R, 4) = str_ChLevel '英文级别数据写入sheet1第int_r行,第4列

Next int_N

'<<<通过For循环遍历Astr_Score数组第二列和第三列数据,将英文级别和中文级别数据填入Sheet1表格对应的列(3,4)<<<

End Sub




查看积分策略说明
附件下载列表:
2019-12-12 20:44:31  下载次数: 48
第二讲 例子.xls (41 KB)
微信扫描分享本文到朋友圈
微信扫描二维码,手机阅读更便捷
每天分享朋友圈可获得威望奖励(前两次)

对本帖内容的看法? 我要点评

 
[充值威望,立即自动到帐] [VIP贵宾权限+威望套餐] 另有大量优惠赠送活动,请光临充值中心
充值拥有大量的威望和最高的下载权限,下载站内资料无忧
郑东文
初级会员
鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

积分 140
帖子 27
威望 5681 个
礼品券 0 个
专家指数 5
注册 2019-1-2
专业方向 
回答问题数 0
回答被采纳数 0
回答采纳率 0%
 
发表于 2019-12-12 20:47:12  只看楼主 


QUOTE:
原帖由 wx_10259334 于 2019-12-12 12:44:51 发表
第二讲 例子.xls已知某班级学生单科成绩数据(如表),成绩为100分满分,其中英文级别和中文级别列数据未知,请按如下评判规则评级并输出,成绩落在[80,100]为A级对应优秀,成绩落在[60,80)为B级对应良好,成绩落 ...

完整代码-->

'评判成绩级别

Sub JScoreLevel()

'>>>相关参数定义>>>

Dim Astr_Score(1 To 20, 1 To 3) As String '成绩数组,数组大小20*3,Astr_Score(n,1)存储成绩,Astr_Score(n,2) 存储英文级别,Astr_Score(n,3) 存储中文级别

Dim int_N As Integer 'Astr_Score数组行下标

Dim int_R As Integer 'Sheet1表格行号

Dim str_RowDataEndFlag As String 'Sheet1行数据结束标识

Dim int_ScoreCount As Integer '成绩个数

Dim int_Score As Integer '成绩

Dim str_EngLevel As String '英文级别

Dim str_ChLevel As String '中文级别

'<<<相关参数定义<<<



'>>>从Sheet1读取成绩数据,存入Astr_Score数组第一列>>>

int_R = 2 '从第二行开始读取

str_RowDataEndFlag = Sheet1.Cells(int_R, 1) '读取第int_r行,第一列数据

int_ScoreCount = 0


Do While (str_RowDataEndFlag <> "") 'str_RowDataEndFlag不为空的时候,一直执行

    int_ScoreCount = int_ScoreCount + 1 '统计成绩个数,同时作为Astr_Score的下标

    Astr_Score(int_ScoreCount, 1) = Sheet1.Cells(int_R, 2) '读取第int_r行第2列数据(成绩)存入Astr_Score第int_ScoreCount行第一列

    int_R = int_R + 1 '行号加一行,切换下一行

    str_RowDataEndFlag = Sheet1.Cells(int_R, 1) '读取新一行的第一列数据

Loop

'<<<从Sheet1读取成绩数据,存入Astr_Score数组第一列<<<



'>>>通过For循环遍历Astr_Score数组第一列数据,并根据规则判断成绩级别>>>

For int_N = 1 To int_ScoreCount

    int_Score = Int(Astr_Score(int_N, 1)) '读取成绩数据,Astr_Score为字符串类型,用int()函数转换成整型

    

    '用if判断成绩英文级别

    If int_Score >= 80 And int_Score <= 100 Then

        str_EngLevel = "A"

    ElseIf int_Score >= 60 And int_Score < 80 Then

        str_EngLevel = "B"

    ElseIf int_Score > 0 And int_Score < 60 Then

        str_EngLevel = "C"

    Else

        str_EngLevel = "D"

    End If

    Astr_Score(int_N, 2) = str_EngLevel '英文级别结果存入Astr_Score数组第int_N行第二列

    

    '用select判断成绩中文级别

    Select Case str_EngLevel

    Case "A"

        str_ChLevel = "优秀"

    Case Is = "B"

        str_ChLevel = "良好"

    Case "C"

        str_ChLevel = "不及格"

    Case "D"

        str_ChLevel = "异常"

    End Select

    Astr_Score(int_N, 3) = str_ChLevel '中文级别结果存入Astr_Score数组第int_N行第三列

Next int_N

'<<<通过For循环遍历Astr_Score数组第一列数据,并根据规则判断成绩级别<<<




'>>>通过For循环遍历Astr_Score数组第二列和第三列数据,将英文级别和中文级别数据填入Sheet1表格对应的列(3,4)>>>

For int_N = 1 To int_ScoreCount

    str_EngLevel = Astr_Score(int_N, 2) '读取英文级别

    str_ChLevel = Astr_Score(int_N, 3) '读取中文级别

    int_R = int_N + 1 'Astr_Score第一行数据写到Sheet1第二行,以此类推,Astr_Score第int_N行数据写到Sheet1第int_N+1行,以此类推

    Sheet1.Cells(int_R, 3) = str_EngLevel '英文级别数据写入sheet1第int_r行,第3列

    Sheet1.Cells(int_R, 4) = str_ChLevel '英文级别数据写入sheet1第int_r行,第4列

Next int_N

'<<<通过For循环遍历Astr_Score数组第二列和第三列数据,将英文级别和中文级别数据填入Sheet1表格对应的列(3,4)<<<

End Sub


对本帖内容的看法? 我要点评

 
[立即成为VIP会员,百万通信专业资料立即下载,支付宝、微信付款,简单、快速!]
liyuliang
VIP会员
鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

积分 20
帖子 4
威望 163580 个
礼品券 0 个
专家指数 0
注册 2015-11-7
专业方向  移动通信
回答问题数 0
回答被采纳数 0
回答采纳率 0%
 
发表于 2019-12-13 11:01:02 


QUOTE:
原帖由 wx_10259334 于 2019-12-12 20:47:12 发表

完整代码--&gt;&#39;评判成绩级别Sub JScoreLevel()&#39;&gt;&gt;&gt;相关参数定义&gt;&gt;&gt;Dim Astr_Score(1 To 20, 1 To 3) As String &#39;成绩数组,数组大小20*3,Astr_Score(n,1)存储成绩,Astr_Score(n,2) 存储英文级别 ...

和PY好像啊

对本帖内容的看法? 我要点评

 
最新通信职位:广东通信人才网 | 北京通信人才网 | 上海通信人才网 | 南京通信人才网 | 西安通信人才网 | 重庆通信人才网 | 中国通信人才网
wjy5888
银牌会员
鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

公益·环保勋章   纪念勋章·九周年  
积分 2604
帖子 361
威望 43665 个
礼品券 114 个
专家指数 385
注册 2009-7-24
专业方向  通信工程
回答问题数 132
回答被采纳数 19
回答采纳率 14%
 
发表于 2019-12-13 14:25:58 


QUOTE:
原帖由 liyuliang 于 2019-12-13 11:01:02 发表

和PY好像啊

我顶

对本帖内容的看法? 我要点评

 
热点: 通信招聘职位 | 网络优化全集 | WCDMA精品 | TD-SCDMA学习资料 | EVDO | MGW媒体网关资料
郑东文
初级会员
鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

积分 140
帖子 27
威望 5681 个
礼品券 0 个
专家指数 5
注册 2019-1-2
专业方向 
回答问题数 0
回答被采纳数 0
回答采纳率 0%
 
发表于 2019-12-13 18:02:16  只看楼主 


QUOTE:
原帖由 liyuliang 于 2019-12-13 03:01:02 发表

和PY好像啊

味道有点一样

对本帖内容的看法? 我要点评

 
最新通信职位:广东通信人才网 | 北京通信人才网 | 上海通信人才网 | 南京通信人才网 | 西安通信人才网 | 重庆通信人才网 | 中国通信人才网

快速回复主题    
标题
内容
 上传资料请点左侧【添加附件】



当前时区 GMT+8, 现在时间是 2020-1-19 11:11:13
渝ICP备11001752号  Copyright @ 2006-2016 mscbsc.com  本站统一服务邮箱:mscbsc@163.com

Processed in 0.218706 second(s), 26 queries , Gzip enabled
TOP
清除 Cookies - 联系我们 - 移动通信网 - 移动通信论坛 - 通信招聘网 - Archiver