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

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


 发短消息    关注Ta 

积分 140
帖子 27
威望 17571 个
礼品券 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  下载次数: 61
第二讲 例子.xls (41 KB)
扫码关注5G通信官方公众号,免费领取以下5G精品资料
  • 1、回复“YD5GAI”免费领取《中国移动:5G网络AI应用典型场景技术解决方案白皮书
  • 2、回复“5G6G”免费领取《5G_6G毫米波测试技术白皮书-2022_03-21
  • 3、回复“YD6G”免费领取《中国移动:6G至简无线接入网白皮书
  • 4、回复“LTBPS”免费领取《《中国联通5G终端白皮书》
  • 5、回复“ZGDX”免费领取《中国电信5G NTN技术白皮书
  • 6、回复“TXSB”免费领取《通信设备安装工程施工工艺图解
  • 7、回复“YDSL”免费领取《中国移动算力并网白皮书
  • 8、回复“5GX3”免费领取《 R16 23501-g60 5G的系统架构1
  • 对本帖内容的看法? 我要点评

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


     发短消息    关注Ta 

    积分 140
    帖子 27
    威望 17571 个
    礼品券 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 

    积分 40
    帖子 8
    威望 918846 个
    礼品券 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 

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


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

    和PY好像啊

    我顶

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

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


     发短消息    关注Ta 

    积分 140
    帖子 27
    威望 17571 个
    礼品券 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, 现在时间是 2025-05-17 10:27:23
    渝ICP备11001752号  Copyright @ 2006-2016 mscbsc.com  本站统一服务邮箱:mscbsc@163.com

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