12月19/20日 财务会计玩转Excel 300集Office 2010微视频教程
12月22/23日 7天Excel脱白 高效办公必会的Office实战技巧
11月28日 Excel图表之美 网易云课堂-Excel数据透视表应用大全
Excel数据处理与分析实战技巧第1季
查看: 1035|回复: 85

零基础VBA 第十期 第四课时作业贴

[复制链接]
发表于 2017-5-11 09:13:40 | 显示全部楼层 |阅读模式
本帖最后由 芬子 于 2017-5-16 14:28 编辑

交作业的要求:

1、不需要附件,只需贴代码,说明你做的是哪道题
2、贴上的代码都需要缩进,并且关键语句要有注释
3、请在添加代码文字,那里添加代码,这样代码要楼层中显得赏心悦目。不知道怎样操作的小伙伴,可以参照看动画。
084712o424eprz4wjhu2jp.gif
回复

使用道具 举报

发表于 2017-5-11 09:15:13 | 显示全部楼层
本帖最后由 抬头苦干 于 2017-5-12 13:29 编辑

作业04:2017-05-10-安冬-UID:1700565
  1. Option Explicit

  2. '1. 根据成绩奖励 100 元
  3. Sub Q1_ScoreBonus()
  4.     Dim sChinese%, sMusic%
  5.     sChinese = Val(InputBox("语文成绩(0-100):", "语文", 90))
  6.     sMusic = Val(InputBox("音乐成绩(0-100):", "音乐", 85))
  7.     If (sChinese >= 90 And sMusic >= 80) Or _
  8.         (sChinese = 100 And sMusic >= 70) Then MsgBox "张三考得不错!奖励 100 元"
  9. End Sub

  10. '2. 输出两个数 a 和 b
  11. Sub Q2_Output_A_B()
  12.     Dim a&, b&
  13.     a = Val(InputBox("a 的值:(一个整数)", , 50))
  14.     b = Val(InputBox("b 的值:(非零整数)", , 5))
  15.     If b <> 0 Then
  16.         If a Mod b = 0 Or a + b > 100 Then
  17.             MsgBox "a = " & a
  18.         Else
  19.             MsgBox "b = " & b
  20.         End If
  21.     Else
  22.         MsgBox "错误:除数为零,b 值输入不合法!"
  23.         Exit Sub
  24.     End If
  25. End Sub

  26. '3. 用户名密码验证
  27. Sub Q3_ValidateLogin()
  28.     Dim uName$, pwd$
  29.     uName = InputBox("请输入用户名:")
  30.     If uName = "小明" Then
  31.         pwd = InputBox("请输入密码:")
  32.         If pwd = "888888" Then
  33.             MsgBox "密码正确,登录成功!"
  34.         Else
  35.             MsgBox "密码错误,登录失败!"
  36.         End If
  37.     Else
  38.         MsgBox "用户名 [" & uName & "] 不存在!", vbCritical
  39.     End If
  40. End Sub

  41. '4. 年终绩效评定
  42. Sub Q4_AnnualBonus()
  43.     Dim salary0%, salary1%, grade$, multiplier%
  44.     salary0 = 5000
  45.     grade = InputBox("年终绩效结果(A-E)", "绩效", "A")
  46.     Select Case grade
  47.         Case "A", "a":  multiplier = 5
  48.         Case "B", "b":  multiplier = 2
  49.         Case "C", "c":  multiplier = 0
  50.         Case "D", "d":  multiplier = -2
  51.         Case "E", "e":  multiplier = -5
  52.         Case Else:
  53.             MsgBox ("输入的考核结果有误,判定中止。")
  54.             Exit Sub
  55.     End Select
  56.     salary1 = salary0 + multiplier * 100
  57.     MsgBox "小李目前基本工资 " & salary0 & " 元,年终绩效为 [ " & UCase(grade) & " ];" & vbCrLf & _
  58.            "根据考核结果,他来年的工资为 " & salary1 & " 元。"
  59. End Sub

  60. '5. 猜数游戏
  61. Sub Q5_NumberGuessGame()
  62.     Dim num As Long, guessNum As Long
  63.     guessNum = Val(InputBox("请输入1-10之间的一个整数来猜"))
  64.     num = WorksheetFunction.RandBetween(1, 10) '生成了一个随机的1-10 之间的数
  65.    
  66.     If guessNum = num Then
  67.         MsgBox "恭喜你,猜对了!"
  68.     Else
  69.         MsgBox IIf(guessNum < num, "小了,小了!", "大了,大了!")
  70.     End If
  71.     MsgBox "所猜的数字为:" & num, vbInformation, "答案揭晓"
  72. End Sub
复制代码


点评

不回复以为没批改,回复又说简短,我该说啥呢。。。写的很好  发表于 2017-5-15 22:25
回复 支持 反对

使用道具 举报

发表于 2017-5-11 09:15:15 | 显示全部楼层
  1. '作业1: 张三的语文成绩大于等于90分并且音乐成绩大于等于80分 或者 语文等于100 分,
  2. '音乐大于等于70 分 则奖励 100 元。
  3. '代码如下:
  4. Sub 作业1_cjpd()
  5.     Dim yuw As Long, yiny As Long '定义两个成绩变量(yuw 代表语文成绩, yiny 代表音乐成绩)
  6.     yuw = 90 '给变量yuw赋值90分
  7.     yiny = 85 '给变量yiny赋值85分
  8.     If (yuw >= 90 And yiny >= 80) Or (yuw = 100 And yiny >= 70) Then '按要求对语文成绩和音乐成绩进行条件判断
  9.         MsgBox "奖励张三100元" '满足条件,输出结果
  10.     End If
  11. End Sub
  12. '作业2: 已知两个数,如果a 能被b 整除 或者 a+b >100 就输出 a 否则就输出 b
  13. '代码如下:
  14. Sub 作业2_numpd()
  15.         Dim a As Long, b As Long '定义2个长整型变量a,b
  16.         a = 80 '给变量a赋值80
  17.         b = 40 '给变量b赋值40
  18.         If a Mod b = 0 Or a + b > 100 Then '进行条件判断
  19.             MsgBox a '条件满足,输出a
  20.         Else
  21.             MsgBox b '条件不满足,输出b
  22.     End If
  23. End Sub

  24. '作业3: 提示输入用户名,如果用户名不等于 “小明”, 就提示用户名不存在 。
  25. '否则提示输入密码: 如果密码不等于”888888”, 则提示密码错误,登录失败。
  26. '代码如下:
  27. Sub 作业3_denglu_a()
  28.     Dim name As String, key As String '定义用户名name为string型变量,密码key为string型变量
  29.     name = InputBox("请输入用户名") '提示输入用户名
  30.     If name <> "小明" Then '如果用户名不等于小明时
  31.         MsgBox "用户名不存在" '输出语句“用户名不存在”
  32.     Else '否则,这里相当于用户名为小明时
  33.         key = InputBox("请输入密码") '提示输入密码
  34.             If key <> 888888 Then '当输入的密码不等于888888时,
  35.                     MsgBox "密码错误,登录失败" '输出结果语句“密码错误,登录失败”
  36.             Else '否则,这里相当于输入的密码是888888
  37.                     MsgBox "登录成功" '输出结果语句“登录成功”
  38.             End If
  39.     End If
  40. End Sub
  41. Sub 作业3_denglu_b()
  42.     Dim name As String, key As String '定义用户名name为string型变量,密码key为string型变量
  43.     Const tname As String = "小明", tkey As String = "888888"
  44.     '此处声明常量方便用户名和密码改变后的代码修改,tname表示正确的用户名,tkey表示正确密码
  45.     name = InputBox("请输入用户名") '提示输入用户名
  46.     If name <> tname Then '如果用户名不等于常量tname时
  47.         MsgBox "用户名不存在" '输出语句“用户名不存在”
  48.     Else '否则,这里相当于用户名为tname时
  49.         key = InputBox("请输入密码") '提示输入密码
  50.             If key <> tkey Then '当输入的密码不等于常量tkey时,
  51.                     MsgBox "密码错误,登录失败" '输出结果语句“密码错误,登录失败”
  52.             Else '否则,这里相当于输入的密码是tkey
  53.                     MsgBox "登录成功" '输出结果语句“登录成功”
  54.             End If
  55.     End If
  56. End Sub
  57. Sub 作业3_denglu_c()
  58.     Dim name As String, key As String '定义用户名name为string型变量,密码key为string型变量
  59.     Const tname As String = "小明", tkey As String = "888888"
  60.     '此处声明常量方便用户名和密码改变后的代码修改,tname表示正确的用户名,tkey表示正确密码
  61.      name = InputBox("请输入用户名") '提示输入用户名
  62.      Select Case name '用select case 语句进行选择判断
  63.      Case Is = tname '如果输入的用户名等于正确的用户名
  64.         key = InputBox("请输入密码") '提示输入密码
  65.             Select Case key
  66.             Case Is = tkey '如果输入的密码等于正确的密码
  67.                 MsgBox "登录成功" '输出语句“登录成功”
  68.             Case Else '在用户名正确,密码错误的情况下
  69.                 MsgBox "密码错误,登录失败" '输出语句"密码错误,登录失败"
  70.             End Select
  71.     Case Else '用户名不正确的情况下
  72.         MsgBox "用户名不存在" '输出语句“用户名不存在”
  73.     End Select
  74. End Sub

  75. '作业4: 年终评定,绩效工资,如果评定为A 每月工资加500,如果为B 每月工资加200
  76. '如果为C 不变,如果为D 降薪200 如果为E 降薪500。李四基本工资为5000,根据评
  77. '定计算他来年的工资。用 Select Case
  78. '代码如下:
  79. Sub 作业4_lngz()
  80.     Dim pj As String, salary As Long '定义评定等级(pj)为string型变量,定义工资(salary)为long型变量(方便后期代码维护)
  81.     salary = 5000 '基本工资赋值5000,当基本工资变化时,直接重新赋值即可
  82.     pj = InputBox("请输入评定等级(A、B、C、D、E)") '提示输入评级
  83.     Select Case pj
  84.     Case "A" '评级A
  85.             salary = salary + 500 '薪资上调500元
  86.     Case "B" '评级B
  87.             salary = salary + 200 '薪资上调200元
  88.     Case "C" '评级C
  89.             salary = salary '薪资维持不变
  90.     Case "D" '评级D
  91.             salary = salary - 200 '薪资下调200元
  92.     Case "E" '评级E
  93.             salary = salary - 500 '薪资下调500元
  94.     End Select
  95.             MsgBox "李四的来年工资为" & salary & "元" '输出来年李四的工资
  96. End Sub

  97. '作业5:猜数游戏雏形,输入1-10 之间的整数
  98. Sub 作业5_guess()
  99.     Dim num As Long, guessNum As Long
  100.     guessNum = Val(InputBox("请输入1-10之间的一个整数来猜"))
  101.     num = WorksheetFunction.RandBetween(1, 10) '生成了一个随机的1-10 之间的数
  102.     '第一判断如果你输入的数比电脑生成的数小:就输出小了小了
  103.     '如果相等 就输出猜对了
  104.     '如果比电脑的数大,就输出大了,大了,代码如下:
  105.     If guessNum < num Then '当猜的数小于随机数时
  106.             MsgBox "小了,小了,小了嘛" '输出语句“小了,小了,小了嘛”
  107.     ElseIf guessNum = num Then '当猜的数等于随机数时
  108.             MsgBox "你真棒,猜对啦" '输出语句“你真棒,猜对啦”
  109.     Else '去除小于和等于的情况,其实就是当猜的数大于随机数时
  110.             MsgBox "大了,大了,大了哟" '输出语句“大了,大了,大了哟”
  111.     End If
  112. End Sub
复制代码


点评

你的变量都是直接赋值的,如果用inputbox写呢?第二题如果b是0怎么办呢?第4题可以跟二楼的一样 使用case "A","a"避免用户输入小写  发表于 2017-5-15 22:35
回复 支持 反对

使用道具 举报

发表于 2017-5-11 11:08:58 | 显示全部楼层
  1. Sub 作业1()
  2.     Dim ywscore As Integer, yyscore As Integer, b As Boolean
  3.     ywscore = InputBox("请输入张三的语文成绩")
  4.     yyscore = InputBox("请输入张三音乐成绩")
  5.     b = (ywscore >= 90 And yyscore >= 80) Or (ywscore >= 100 And yyscore >= 70)
  6.     If b Then MsgBox "奖励张三100元"
  7.   End Sub
复制代码
  1. Sub 作业2()
  2.     Dim a As Long, b As Long, c As Boolean
  3.     a = InputBox("请为a输入一个数值")
  4.     b = InputBox("请为b输入一个数值")
  5.     c = (a Mod b = 0) Or (a + b > 100)
  6.     If c Then
  7.         MsgBox a
  8.     Else
  9.         MsgBox b
  10.     End If
  11. End Sub
复制代码
  1. Sub 作业3()
  2.     Dim name As String, password As String
  3.     name = InputBox("请输入用户名")
  4.     If name <> "小明" Then
  5.         MsgBox "用户名不存在"
  6.     Else
  7.         password = InputBox("请输入密码")
  8.         If password <> "888888" Then MsgBox "密码错误,登录失败"
  9.     End If
  10. End Sub
复制代码
  1. Sub 作业4()
  2.      Dim level As String
  3.      level = InputBox("请输入年终评定")
  4.      Select Case level
  5.      Case "A"
  6.          MsgBox "李四来年的基本工资为" & 5000 + 500
  7.      Case "B"
  8.          MsgBox "李四来年的基本工资为" & 5000 + 200
  9.      Case "C"
  10.          MsgBox "李四来年的基本工资为" & 5000
  11.      Case "D"
  12.          MsgBox "李四来年的基本工资为" & 5000 - 200
  13.      Case "E"
  14.          MsgBox "李四来年的基本工资为" & 5000 - 500
  15.      Case Else
  16.          MsgBox "年终评定等级输入错误。"
  17.      End Select
  18. End Sub
复制代码
  1. Sub 猜数游戏雏形()
  2.     Dim num As Long, guessNum As Long
  3.     guessNum = Val(InputBox("请输入1-10之间的一个整数来猜"))
  4.     num = WorksheetFunction.RandBetween(1, 10) '生成了一个随机的1-10 之间的数
  5.     '第一判断如果你输入的数比电脑生成的数小:就输出小了小了
  6.     '如果相等 就输出猜对了
  7.     '如果比电脑的数大,就输出大了,大了
  8.     If num < guessNum Then
  9.         MsgBox "小了小了"
  10.     ElseIf num = guessNum Then
  11.         MsgBox "猜对了"
  12.     Else
  13.         MsgBox "大了大了"
  14.     End If
  15. End Sub
复制代码


点评

第二题,如果b是0的话,a mod b 会提示错误的。该怎么办呢?第三题,如果登陆成功可以也给个提示哦。第四题可以跟二楼的一样 使用case "A","a"避免用户输入小写哦。整体还是棒棒哒。  发表于 2017-5-15 22:37
回复 支持 反对

使用道具 举报

发表于 2017-5-11 11:43:24 | 显示全部楼层
  1. Sub 作业10_4_1_成绩奖励_Aceball()
  2.     Dim yuwenchengji As Long, yinyuechengji As Long     '定义变量分别表示语文成绩和音乐成绩
  3.     yuwenchengji = InputBox("请输入张三的语文成绩。")   '获取语文成绩
  4.     yinyuechengji = InputBox("请输入张三的音乐成绩。")  '获取音乐成绩
  5.     If (yuwenchengji >= 90 And yinyuechengji >= 80) Or (yuwenchengji = 100 And yinyuechengji >= 70) Then MsgBox "奖励张三100元。"
  6.     '进行判断,满足条件输出结果,不满足条件不做处理
  7. End Sub
复制代码
  1. Sub 作业10_4_2_输出a或b_Aceball()
  2.     Dim a As Long, b As Long        '定义变量
  3.     a = InputBox("请输入a的值。")   '获取a值
  4.     b = InputBox("请输入b的值。")   '获取b值
  5.     If a Mod b = 0 Or a + b > 100 Then      '判断条件是否满足
  6.         MsgBox "a的值是" & a                '条件成立输出a值
  7.     Else
  8.         MsgBox "b的值是" & b                '条件不成立输出b值
  9.     End If
  10. End Sub
复制代码
  1. Sub 作业10_4_3_小明的密码_Aceball()
  2.     Dim name As String, password As String      '定义变量
  3.     name = InputBox("请输入用户名。")           '提示用户输入用户名
  4.     If name <> "小明" Then                      '判断输入的用户名是否为“小明”
  5.         MsgBox "该用户名不存在。"               '用户名不是小明,则提示该用户名不存在
  6.     Else
  7.        password = InputBox("请输入密码。")      '用户名是小明,则提示输入密码
  8.        If password = "888888" Then              '判断密码是否为6个8
  9.             MsgBox "密码正确,登录成功。"       '密码是6个8,提示登录成功
  10.         Else
  11.             MsgBox "密码错误,登录失败!"       '密码不是6个8,提示登录失败
  12.         End If
  13.     End If
  14. End Sub
复制代码
  1. Sub 作业10_4_4_绩效奖金_Aceball()
  2.     Dim jibengongzi As Long, jixiaopingding As String       '定义变量,分别表示基本工资和年终绩效评定等级
  3.     jibengongzi = 5000                                  '为基本工资赋值
  4.     jixiaopingding = InputBox("请输入李四的年终评定等级。")     '提示输入李四的年终评定等级
  5.     Select Case jixiaopingding                                  '根据输入的年终绩效评定等级确定李四来年的月工资额
  6.         Case "A"
  7.             MsgBox "李四的年终评定等级为A,来年每月工资加500元,新的月工资额为" & jibengongzi + 500 & "元。"
  8.         Case "B"
  9.             MsgBox "李四的年终评定等级为B,来年每月工资加200元,新的月工资额为" & jibengongzi + 200 & "元。"
  10.         Case "C"
  11.             MsgBox "李四的年终评定等级为C,来年每月工资金额不变,新的月工资额仍为" & jibengongzi & "元。"
  12.         Case "D"
  13.             MsgBox "李四的年终评定等级为D,来年每月工资减200元,新的月工资额为" & jibengongzi - 200 & "元。"
  14.         Case "E"
  15.             MsgBox "李四的年终评定等级为E,来年每月工资减500元,新的月工资额为" & jibengongzi - 500 & "元。"
  16.         Case Else
  17.             MsgBox "输入的年终绩效评定等级不正确,请重试,并输入大写字母“A”到“E”中的一个。"
  18.     End Select
  19. End Sub
复制代码
  1. Sub 作业10_4_5_猜数游戏雏形_Aceball()
  2.     Dim num As Long, guessNum As Long       '定义变量,分别代表系统生成的随机数和用户所猜数字
  3.     num = WorksheetFunction.RandBetween(1, 10) '系统生成一个1-10之间的随机数,并将其赋值给变量num
  4.     guessNum = Val(InputBox("请输入1-10之间的一个整数来猜"))    '提示用户猜数
  5.     If guessNum < num Then
  6.         MsgBox "您猜的数字小了。"   '比较guessNum和num,如果输入的数比电脑生成的数小:就输出猜小了
  7.     ElseIf guessNum = num Then
  8.         MsgBox "您猜对了,这个数字是" & num & "。"      '如果相等 就输出猜对了
  9.     Else
  10.         MsgBox "您猜的数字大了。"       '如果比电脑的数大,就输出猜大了
  11.     End If
  12. End Sub
复制代码


点评

第二题,如果b是0的话,a mod b 会提示错误的。该怎么办呢?第四题可以跟二楼的一样 使用case "A","a"避免用户输入小写哦。  发表于 2017-5-15 22:37
回复 支持 反对

使用道具 举报

发表于 2017-5-11 12:28:58 | 显示全部楼层
  1. '作业1: 张三的语文成绩大于等于90分并且音乐成绩大于等于80分 或者 语文等于100 分,
  2. '音乐大于等于70 分 则奖励 100 元。
  3.    
  4.     '思路:定义语文和音乐成绩各位一个long 变量,if(语文>=90 and 因为>=80) or (语文=100 and 音乐>=70) then 输出"奖励100元"

  5. Sub 作业1()
  6.     Dim chinese As Long
  7.     Dim music As Long
  8.     chinese = Val(InputBox("请输入张三的语文成绩"))
  9.     music = Val(InputBox("请输入张三的音乐成绩"))
  10.     If (chinese >= 90 And music >= 80) Or (chinese = 100 And music >= 70) Then MsgBox "奖励张三100元"
  11.    
  12. End Sub
复制代码
  1. '作业2: 已知两个数,如果a 能被b 整除 或者 a+b >100 就输出 a 否则就输出 b

  2.     '思路:定义a、b各为一个long变量,if a MOD b=0 or a+b>100 then "输出a" Else "输出b"
  3.    
  4. Sub 作业2()
  5.     Dim a As Long
  6.     Dim b As Long
  7.     a = Val(InputBox("请输入a"))
  8.     b = Val(InputBox("请输入b"))
  9.     If a Mod b = 0 Or a + b > 100 Then
  10.         MsgBox a
  11.     Else
  12.         MsgBox b
  13.     End If
  14.    
  15. End Sub
复制代码
  1. '作业3: 提示输入用户名,如果用户名不等于 “小明”, 就提示用户名不存在 。
  2. '否则提示输入密码: 如果密码不等于”888888”, 则提示密码错误,登录失败。

  3.     '思路:定义用户名和密码为string变量,if 用户名<>小明,则提示用户不存在
  4.     '      Else 输入密码,嵌套if 密码<>888888,则提示错误,登陆失败
  5.    
  6. Sub 作业3()
  7.     Dim name As String
  8.     Dim passwork As String
  9.     name = InputBox("请输入用户名")
  10.     If name <> "小明" Then
  11.         MsgBox "该用户不存在"
  12.     Else
  13.         passwork = InputBox("请输入登陆密码")
  14.         If passwork <> 888888 Then
  15.             MsgBox "密码错误,登陆失败"
  16.         End If
  17.     End If
  18.         
  19. End Sub
复制代码
  1. '作业4: 年终评定,绩效工资,如果评定为A 每月工资加500,如果为B 每月工资加200
  2. '如果为C 不变,如果为D 降薪200 如果为E 降薪500。李四基本工资为5000,根据评
  3. '定计算他来年的工资。用 Select Case

  4.     '思路:定义基本工资为Long变量,年终评定为string变量
  5.           '基本工资=5000,年终评定=inputbox("")
  6.           'if 年终评定=A,then msgbox "李四来年的工资为"&基本工资+500
  7.           'elseif 年终评定=B,then msgbox "李四来年的工资为"&基本工资+200
  8.           'elseif 年终评定=C,then msgbox "李四来年的工资为"&基本工资
  9.           'elseif 年终评定=D,then msgbox "李四来年的工资为"&基本工资-200
  10.           'elseif 年终评定=E,then msgbox "李四来年的工资为"&基本工资-500
  11.         
  12.    
  13.     Sub 作业4()
  14.         Dim basicsalary As Long
  15.         Dim annualassessment As String
  16.         basicsalary = 5000
  17.         annualassessment = InputBox("请输入李四的年终评定结果(A、B、C、D、E)")
  18.         If annualassessment = "A" Then
  19.             MsgBox "根据年终评定,李四来年的工资为" & basicsalary + 500
  20.         ElseIf annualassessment = "B" Then
  21.             MsgBox "根据年终评定,李四来年的工资为" & basicsalary + 200
  22.         ElseIf annualassessment = "C" Then
  23.             MsgBox "根据年终评定,李四来年的工资为" & basicsalary
  24.         ElseIf annualassessment = "D" Then
  25.             MsgBox "根据年终评定,李四来年的工资为" & basicsalary - 200
  26.         ElseIf annualassessment = "E" Then
  27.             MsgBox "根据年终评定,李四来年的工资为" & basicsalary - 500
  28.         End If
  29.    
  30.     End Sub
复制代码
  1. '作业5:猜数游戏雏形,输入1-10 之间的整数
  2. Sub 猜数游戏雏形()
  3.     Dim num As Long, guessNum As Long
  4.     guessNum = Val(InputBox("请输入1-10之间的一个整数来猜"))
  5.     num = WorksheetFunction.RandBetween(1, 10) '生成了一个随机的1-10 之间的数
  6.     '第一判断如果你输入的数比电脑生成的数小:就输出小了小了
  7.     '如果相等 就输出猜对了
  8.     '如果比电脑的数大,就输出大了,大了

  9.     Select Case guessNum
  10.     Case Is < num
  11.         MsgBox "小了小了"
  12.     Case Is = num
  13.         MsgBox "猜对啦"
  14.     Case Else
  15.         MsgBox "大了大了"

  16.     End Select
  17.    
  18. End Sub
复制代码
谢谢老师!

点评

第二题,如果b是0的话,a mod b 会提示错误的。该怎么办呢?第三题,如果登陆成功可以也给个提示哦。第四题要求用select case语句。  发表于 2017-5-15 22:40
回复 支持 反对

使用道具 举报

发表于 2017-5-11 12:41:14 | 显示全部楼层
  1. Sub 作业1()
  2. Dim a As Integer, b As Integer
  3. a = InputBox("请输入语文成绩")
  4. b = InputBox("请输入英语成绩")
  5. If (a >= 90 And b >= 80) Or (a = 100 And b >= 70) Then MsgBox "奖励100元"
  6. End Sub
复制代码
  1. Sub 作业2()
  2. Dim a As Long, b As Long
  3. a = InputBox("请输入数字a")
  4. b = InputBox("请输入数字b")
  5.     If (a Mod b = 0) Or (a + b > 100) Then
  6.         MsgBox a
  7.     Else
  8.         MsgBox b
  9.     End If
  10. End Sub
复制代码
  1. Sub 作业3()
  2. Dim 姓名 As String, 密码 As String
  3. 姓名 = InputBox("请输入用户名")
  4.     If 姓名 <> "小明" Then
  5.      MsgBox "用户名错误"
  6.      Else: MsgBox "请输入密码"
  7. 密码 = Val(InputBox("请输入密码"))
  8.      If 密码 <> "888888" Then
  9.       MsgBox "密码错误,登录失败"
  10.     Else: MsgBox "登录成功"
  11.     End If
  12.       End If
  13. End Sub
复制代码
  1. Sub 作业4()
  2. Dim 绩效 As String
  3. 绩效 = InputBox("请输入绩效")
  4. Select Case 绩效
  5. Case "A"
  6.     MsgBox "李四的绩效工资为:" & "5500元"
  7. Case "B"
  8.     MsgBox "李四的绩效工资为:" & "5200元"
  9. Case "C"
  10.     MsgBox "李四的绩效工资为:" & "5000元"
  11. Case "D"
  12.     MsgBox "李四的绩效工资为:" & "4500元"
  13. End Select
  14. End Sub
复制代码
  1. Sub 猜数游戏雏形()
  2.     Dim num As Long, guessNum As Long
  3.     guessNum = Val(InputBox("请输入1-10之间的一个整数来猜"))
  4.     num = WorksheetFunction.RandBetween(1, 10)
  5.     Select Case num
  6.     Case Is < guessNum
  7.         MsgBox "输出小了"
  8.     Case Is = guessNum
  9.         MsgBox "猜对了"
  10.     Case Is > guessNum
  11.         MsgBox "输出大了"
  12.     End Select
  13. End Sub
复制代码




点评

第二题,如果b是0的话,a mod b 会提示错误的。该怎么办呢?第三题,你的if语句缩进写的很乱哦,可以看看楼上的写法哦。第四题可以跟二楼的一样 使用case "A","a"避免用户输入小写哦。  发表于 2017-5-15 22:48
回复 支持 反对

使用道具 举报

发表于 2017-5-11 13:52:53 | 显示全部楼层
  1. '作业1: 张三的语文成绩大于等于90分并且音乐成绩大于等于80分 或者 语文等于100 分,
  2. '音乐大于等于70 分 则奖励 100 元。

  3. Sub 作业1()
  4.     Dim 语文成绩 As Long, 音乐成绩 As Long, b As Boolean
  5.     语文成绩 = InputBox("张三语文成绩")
  6.     音乐成绩 = InputBox("张三音乐成绩")
  7.         If 语文成绩 >= 90 And 音乐成绩 >= 80 Then
  8.             MsgBox "奖励100元"
  9.         ElseIf 语文成绩 = 100 And 音乐成绩 >= 70 Then
  10.             MsgBox "奖励100元"
  11.         End If
  12. End Sub
复制代码
  1. '作业2: 已知两个数,如果a 能被b 整除 或者 a+b >100 就输出 a 否则就输出 b

  2. Sub 作业2()
  3.     Dim a As String, b As String, c As Long
  4.     a = InputBox("请输入一个数字代表a")
  5.     b = InputBox("请输入一个数字代表b")
  6.     c = (a Mod b = 0) And (a + b > 100)
  7.         If c Then
  8.             MsgBox a
  9.         Else
  10.             MsgBox b
  11.         End If

  12. End Sub
复制代码
  1. '作业3: 提示输入用户名,如果用户名不等于 “小明”, 就提示用户名不存在 。
  2. '否则提示输入密码: 如果密码不等于”888888”, 则提示密码错误,登录失败。

  3. Sub 作业3()
  4.     Dim user As String, key As String
  5.     user = InputBox("请输入用户名")
  6.     If user <> "小明" Then
  7.          MsgBox "用户名不存在"
  8.     Else: key = InputBox("请输入密码")
  9.         If key = 888888 Then
  10.         Else
  11.             MsgBox "密码错误,登录失败"
  12.         End If
  13.      End If
  14. End Sub
复制代码
  1. '作业4: 年终评定,绩效工资,如果评定为A 每月工资加500,如果为B 每月工资加200
  2. '如果为C 不变,如果为D 降薪200 如果为E 降薪500。李四基本工资为5000,根据评
  3. '定计算他来年的工资。用 Select Case

  4. Sub 作业4()
  5.     Dim 绩效评定 As String, BS As Long, a As Long, b As Long, c As Long, d As Long
  6.     绩效评定 = InputBox("请输入评定级别")
  7.     BS = 5000
  8.     a = 500
  9.     b = 200
  10.     c = -200
  11.     d = -500
  12.     Select Case 绩效评定
  13.     Case "A"
  14.         MsgBox "李四明年工资" & BS + a
  15.     Case "B"
  16.         MsgBox "李四明年工资" & BS + b
  17.     Case "C"
  18.         MsgBox "李四明年工资" & BS
  19.     Case "D"
  20.         MsgBox "李四明年工资" & BS - c
  21.     Case "E"
  22.         MsgBox "李四明年工资" & BS - d
  23.     End Select
  24. End Sub
复制代码
  1. '作业5:猜数游戏雏形,输入1-10 之间的整数


  2. Sub 作业5()
  3.     Dim num As Long, guessNum As Long
  4.     guessNum = Val(InputBox("请输入1-10之间的一个整数来猜"))
  5.     num = WorksheetFunction.RandBetween(1, 10) '生成了一个随机的1-10 之间的数
  6.     '第一判断如果你输入的数比电脑生成的数小:就输出小了小了
  7.     '如果相等 就输出猜对了
  8.     '如果比电脑的数大,就输出大了,大了
  9.     If num < guessNum Then
  10.         MsgBox "输出大了,大了。"
  11.     ElseIf num = guessNum Then
  12.         MsgBox "猜对了!"
  13.     Else
  14.         MsgBox "输出小了,小了。"
  15.     End If
  16. End Sub
复制代码


点评

第二题,如果b是0的话,a mod b 会提示错误的。该怎么办呢?第三题,你的if语句写的有点乱。第四题可以跟二楼的一样 使用case "A","a"避免用户输入小写哦。  发表于 2017-5-15 22:50
回复 支持 反对

使用道具 举报

发表于 2017-5-11 14:22:19 | 显示全部楼层
  1. Sub 作业1()
  2.     Dim yw As Long, yy As Long
  3.     Dim b As Boolean
  4.     yw = InputBox("请输入张三的语文成绩")
  5.     yy = InputBox("请输入张三的音乐成绩")
  6.     b = (yw >= 90 And yy >= 80) Or (yw = 100 And yy >= 70)
  7.     If b Then MsgBox "奖励100元"
  8.    
  9. End Sub
复制代码
  1. Sub 作业2()
  2.     Dim a As Long, b As Long
  3.     a = 38
  4.     b = 4
  5.     If a ^ b = 0 Or a + b > 100 Then
  6.         MsgBox a
  7.     Else
  8.         MsgBox b
  9.     End If
  10. End Sub
复制代码
  1. Sub 作业3()
  2.     Dim name As String, md As String
  3.     name = InputBox("请输入用户名")
  4.     If name <> "小明" Then
  5.         MsgBox "用户名不存在"
  6.     Else
  7.         md = Val(InputBox("请输入密码"))
  8.         If md <> 888888 Then
  9.             MsgBox "密码错误,登录失败"
  10.         End If
  11.     End If
  12.    

  13. End Sub
复制代码
  1. Sub 作业4()
  2.     Dim p As String, s As Long
  3.     p = InputBox("请输入李四绩效工资评定等级")
  4.     s = 5000
  5.     Select Case p
  6.     Case "A"
  7.         s = s + 500
  8.     Case "B"
  9.         s = s + 200
  10.     Case "C"
  11.         s = s
  12.     Case "D"
  13.         s = s - 200
  14.     Case "E"
  15.         s = s - 500
  16.     End Select
  17.     MsgBox "李四来年的工资为" & s & "元。"
  18. End Sub
复制代码
  1. Sub 作业5()

  2.     Dim num As Long, guessNum As Long
  3.     guessNum = Val(InputBox("请输入1-10之间的一个整数来猜"))
  4.     num = WorksheetFunction.RandBetween(1, 10)
  5.     If guessNum < num Then
  6.         MsgBox "小了,小了!"
  7.     ElseIf guessNum = num Then
  8.         MsgBox "猜对了!"
  9.     Else
  10.         MsgBox "大了,大了!"
  11.     End If
  12. End Sub
复制代码


点评

第二题,是a mod b = 0 哦。第三题,登陆成功了可以给个提示哦,第四题可以跟二楼的一样 使用case "A","a"避免用户输入小写哦。  发表于 2017-5-15 22:52
回复 支持 反对

使用道具 举报

发表于 2017-5-11 14:59:15 | 显示全部楼层
  1. Sub 作业1()
  2.     Dim 语文 As Long, 音乐 As Long
  3.     Dim b As Boolean
  4.     语文 = InputBox("请输入张三的语文成绩")
  5.     音乐 = InputBox("请输入张三的音乐成绩")
  6.     b = (语文 >= 90 And 音乐 >= 80) Or (语文 = 100 And 音乐 >= 70)
  7.     If b Then MsgBox "奖励100元"
  8.    
  9. End Sub
复制代码


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 入学

本版积分规则

关闭

站长推荐上一条 /2 下一条

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