Excel精英培训网

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

[通知] Excel 2015VBA初级2班第1课A组作业上交贴(已开贴)

[复制链接]
发表于 2015-11-5 20:18 | 显示全部楼层 |阅读模式
本帖最后由 雪舞子 于 2015-11-8 21:46 编辑

作业说明及要求:

1、根据第一课所讲的内容,按课堂中的布置或根据课件内容,编写一段代码;
2、纯录制代码不加分!无独特思考内容的代码不加分!抄袭他人代码无新意不加分!粗糙不合理的代码少加分!
3、提交作业请注明论坛ID及学号。如:A01-麻花_;作业可以压缩包代码方式提交均可;
4、代码题要求强制声明变量,代码缩进
5、非本组学员也可以跟帖,优秀代码给高分;
6、我们的目标:超出他组,胜出我队。
7、作业截止时间:2015年11月08日18:00时

本课作业小结:

看的出大家基础都很好,作业都非常出色。逻辑关系清晰,代码准确,只是在一些细节上要加强。比如定义的变量类型,边界值的“包含”、“不包含”以及逻辑关系的表达等,
虽然都是一些小问题,出问题的不是不会只是一时的疏忽,但这些细节上的问题,大家也应该认真对待。写代码本身就是个细致的工作,唯有细心加努力才能立于不败之地。
本节作业按老师要求主要练习 “if……then……else……”语句,但也推荐大家用多种方法去写,因此作业中没使用此语句的都略减了分,也许用其他条件判断可能也会更精炼一些,但不符合要求。


代码是可以推敲简化的,以下是我的思路,代码只使用了if……then,没有使用else。大家用F8测试一下,有问题及时反馈给我:
  1. Sub 作业1()
  2.     Dim x As Double
  3.     x = [c2]                         '方括号[]为单元格简写形式
  4.     [d2] = "优秀"                    '默认80以上优秀
  5.     If x < 80 Then [d2] = "良好"     '70-80良好
  6.     If x < 70 Then [d2] = "合格"     '60-70及格
  7.     If x < 60 Then [d2] = "不及格"   '60以下,不及格
  8. End Sub
复制代码

评分

参与人数 2 +12 收起 理由
神隐汀渚 + 9 递减结构避免多余的判断 学习
麻花_ + 3 赞一个!

查看全部评分

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-11-5 20:21 | 显示全部楼层
A组长:无聊的疯子
第一课作业代码如下:

  1. Sub Js()
  2. Dim Js As Long, cJ, Dj
  3.   cJ = Range("C2").Value
  4.   If cJ < 60 Then Dj = "不合格": Js = 1
  5.   If cJ < 70 Then: If Js = 0 Then Dj = "合格": Js = 4
  6.   If cJ < 80 Then
  7.     If Js = 0 Then Dj = "良好": Js = 12
  8.   Else
  9.     Dj = "优秀"
  10.   End If
  11.   Range("D2") = Dj
  12. End Sub
复制代码

点评

利用标识变量结合条件判断,是一种思路,不过不推荐这样做,似乎把简单问题复杂化了。  发表于 2015-11-8 18:21

评分

参与人数 1 +19 金币 +19 收起 理由
雪舞子 + 19 + 19 加油!

查看全部评分

回复

使用道具 举报

发表于 2015-11-5 21:53 | 显示全部楼层
A12-ZL在水一方
  1. Option Explicit
  2. Sub 等级查询1()
  3. Dim x As Single
  4. x = [c2]
  5.     If x < 80 Then
  6.         [d2] = "良好"
  7.         If x < 70 Then
  8.             [d2] = "合格"
  9.             If x < 60 Then
  10.                 [d2] = "不及格"
  11.             End If
  12.         End If
  13.     Else
  14.         [d2] = "优秀"
  15.     End If
  16. End Sub
复制代码
  1. Option Explicit
  2. Sub 等级查询2()
  3. Dim x As Single
  4. x = [c2]
  5.     If x >= 60 Then
  6.         [d2] = "合格"
  7.         If x >= 70 Then
  8.             [d2] = "良好"
  9.             If x >= 80 Then
  10.                 [d2] = "优秀"
  11.             End If
  12.         End If
  13.     Else
  14.         [d2] = "不及格"
  15.     End If
  16. End Sub
复制代码
  1. Option Explicit
  2. Sub 等级查询3()
  3. Dim x As Single
  4. x = [c2]
  5.     If x < 60 Then
  6.         [d2] = "不及格"
  7.     ElseIf x < 70 Then
  8.         [d2] = "合格"
  9.     ElseIf x < 80 Then
  10.         [d2] = "良好"
  11.     Else
  12.         [d2] = "优秀"
  13.     End If
  14. End Sub
复制代码
  1. Option Explicit
  2. Sub 等级查询4()
  3. Dim x As Single
  4. x = [c2]
  5.     Select Case x
  6.     Case Is < 60
  7.         [d2] = "不及格"
  8.     Case 60 To 69
  9.         [d2] = "合格"
  10.     Case 70 To 79
  11.         [d2] = "良好"
  12.     Case Else
  13.         [d2] = "优秀"
  14.     End Select
  15. End Sub
复制代码

点评

使用了多种方法,一看就是老鸟!前三种方法尚可,最后一种方法视乎不是很准确。比如79.5会判断优秀,这与题意不符。  发表于 2015-11-8 18:35

评分

参与人数 1 +19 金币 +19 收起 理由
雪舞子 + 19 + 19 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2015-11-5 22:11 | 显示全部楼层
本帖最后由 建峰 于 2015-11-5 22:15 编辑

A06:建峰
  1. Option Explicit

  2. Sub 成绩测试()                          '创建过程“成绩测试”
  3. If Range("c2") < 60 Then                '如果C2小于60
  4.     Range("d2") = "不及格"              '那么d2输入不及格
  5. Else                                    '否则
  6.     If Range("c2") < 70 Then            '如果C2小于70
  7.         Range("d2") = "合格"            '那么d2输入合格
  8.     Else                                '否则
  9.         If Range("c2") < 80 Then        '如果C2小于80
  10.             Range("d2") = "良好"        '那么d2输入良好
  11.         Else                            '否则
  12.             Range("d2") = "优秀"        '那么d2输入优秀
  13.         End If                          '结束if
  14.     End If                              '结束if
  15. End If                                  '结束if
  16. End Sub                                 '结束过程
复制代码
回答完毕!

点评

非常好!逻辑关系清楚,代码准确。每句代码都加了注释,很认真!视乎缩进有点小问题,也许与论坛排版有关。  发表于 2015-11-8 18:41

评分

参与人数 1 +20 金币 +20 收起 理由
雪舞子 + 20 + 20 优秀作业!

查看全部评分

回复

使用道具 举报

发表于 2015-11-5 22:15 | 显示全部楼层

姓名:A01:麻花_

第一次写代码,死搬硬套的把老师讲的套了一遍,不知道对不对?
  1. Option Explicit
  2. Sub 成绩()
  3.     Dim x As Long
  4.     x = [C2]
  5.     If x < 60 Then
  6.         [D2] = "不合格"
  7.     Else
  8.         If x <= 70 Then
  9.             [D2] = "及格"
  10.         Else
  11.             If x <= 80 Then
  12.                 [D2] = "良好"
  13.             Else
  14.                 [D2] = "优秀"
  15.             End If
  16.         End If
  17.     End If

  18. End Sub
复制代码

点评

逻辑关系清晰,但代码小有偏差,边界值是不含的所以应为“<”而不是“<=”;再有定义变量类型为长整型视乎不是很精确。  发表于 2015-11-8 18:47

评分

参与人数 1 +19 金币 +19 收起 理由
雪舞子 + 19 + 19 很给力!

查看全部评分

回复

使用道具 举报

发表于 2015-11-6 08:39 | 显示全部楼层
Option Explicit
Sub 成绩等级()
    Dim x As Double
    x = [c2]
    If x < 60 Then
        [d2] = "不及格"
    ElseIf x < 70 Then
        [d2] = "合格"
    ElseIf x < 80 Then
        [d2] = "良好"
    Else
        [d2] = "优秀"
    End If
End Sub

点评

为了代码整洁最好将代码放入标签中。逻辑关系准确,但本课不推荐使用“elseif”,当然对这些条件判断你早已了然于胸。  发表于 2015-11-8 18:54

评分

参与人数 1 +19 金币 +19 收起 理由
雪舞子 + 19 + 19 神马都是浮云

查看全部评分

回复

使用道具 举报

发表于 2015-11-6 08:52 | 显示全部楼层
  1. Sub 成绩等级()
  2.     Dim x As Long
  3.     x = [c2]
  4.     If x < 60 Then
  5.         [d2] = "不及格"
  6.     Else
  7.     If x < 70 Then
  8.         [d2] = "合格"
  9.     Else
  10.     If x < 80 Then
  11.         [d2] = "良好"
  12.     Else
  13.         [d2] = "优秀"
  14.     End If
  15.     End If
  16.     End If
  17. End Sub
复制代码

点评

逻辑关系清晰,代码准确。代码缩进应在做的细致一点,定义的变量类型视乎值得商榷。成败在于细节,加油!  发表于 2015-11-8 19:01

评分

参与人数 1 +19 金币 +19 收起 理由
qh8600 + 19 + 19 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2015-11-6 09:30 | 显示全部楼层
  1. Sub 成绩等级()
  2.     Dim x As Double
  3.     x = [c2]
  4.     If x < 60 Then [d2] = "不及格"
  5.     If (x >= 60) * (x < 70) Then [d2] = "及格"
  6.     If (x >= 70) * (x < 80) Then [d2] = "良好"
  7.     If (x > 80) Then [d2] = "优秀"
  8. End Sub
复制代码

点评

确实是高手,将逻辑关系进行运算,结果无误。不过好像出题者本意,本课作业主要让大家联系if……then……else……,当然老鸟可以忽略。  发表于 2015-11-8 19:08

评分

参与人数 1 +19 金币 +19 收起 理由
qh8600 + 19 + 19 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2015-11-6 10:22 | 显示全部楼层
请提出宝贵意见

成绩等级查询.rar

13.73 KB, 下载次数: 3

点评

逻辑关系清晰,结果准确,但“and”的使用好像略显多余。  发表于 2015-11-8 19:12

评分

参与人数 1 +19 金币 +19 收起 理由
qh8600 + 19 + 19 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2015-11-6 10:56 | 显示全部楼层
  1. Sub 成绩等级判断作业()    ' A03:开心妙妙
  2.     Dim x As Double
  3.     x = [C2]
  4.     If x < 60 Then
  5.         [D2] = "不及格"
  6.     Else
  7.         If x <= 70 Then
  8.             [D2] = "及格"
  9.         Else
  10.             If x <= 80 Then
  11.                 [D2] = "良好"
  12.             Else
  13.                 [D2] = "优秀"
  14.             End If
  15.         End If
  16.     End If
  17. End Sub
  18. Sub 成绩等级判断作业2()    ' A03:开心妙妙
  19.     Dim x As Double
  20.     x = [C2]
  21.     If x < 60 Then
  22.         [D2] = "不及格"
  23.     ElseIf x <= 70 Then
  24.         [D2] = "及格"
  25.     ElseIf x <= 80 Then
  26.         [D2] = "良好"
  27.     Else
  28.         [D2] = "优秀"
  29.     End If
  30. End Sub
复制代码

点评

逻辑关系清晰,用了两种条件判断方法写代码非常不错,好可惜没有仔细审题,将“不含”看成了“含”。  发表于 2015-11-8 19:18

评分

参与人数 1 +19 金币 +19 收起 理由
qh8600 + 19 + 19 赞一个!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 10:34 , Processed in 0.555425 second(s), 25 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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