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

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

[复制链接]
发表于 2017-7-20 08:42:00 | 显示全部楼层 |阅读模式
本帖最后由 开心妙妙 于 2017-7-27 15:11 编辑

交作业的要求:

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

使用道具 举报

发表于 2017-7-20 08:46:50 | 显示全部楼层
  1. Sub SelectCase作业()
  2.   Dim age As Long, level As String, figure
  3.     age = InputBox("你的年龄")
  4.          Select Case age
  5.              Case Is <= 13
  6.                MsgBox "可以看G级电影"
  7.              Case Is <= 16
  8.                figure = (MsgBox("提问是否有家里大人陪同", vbYesNo + vbInformation))
  9.                level = MsgBox(IIf(figure, "可以看PG-13级", "可以看PG级"))
  10.              Case Is <= 18
  11.                MsgBox "可以看NC-17级电影"
  12.              Case Is > 18
  13.                MsgBox "可以看R级电影"
  14.          End Select
  15. End Sub

  16. Sub 循环作业1()
  17.      Dim i As Long, score As Long
  18.        score = InputBox("小明的考试成绩")
  19.          If score >= 90 Then
  20.              MsgBox "奖励100元"
  21.          Else
  22.              For i = 1 To 100
  23.                  Debug.Print "小明抄写第" & i&; "我再也不敢马虎了"
  24.              Next
  25.          End If
  26. End Sub

  27. Sub 循环作业2()
  28.      Dim i As Long, j As Long
  29.        For i = 0 To 100 Step 7
  30.            j = j + i
  31.        Next
  32.      MsgBox j
  33. End Sub

  34. Sub 循环作业3()
  35.      Dim i As Long, j As Long
  36.          For i = 1 To 100
  37.              j = j + i * (-1) ^ (i - 1)
  38.          Next
  39.      MsgBox j
  40. End Sub

  41. Sub 循环作业4()
  42.      Dim i As Integer, j As Long, 成绩 As Long, 总分 As Long
  43.        i = InputBox("输入学生人数")
  44.          For j = 1 To i
  45.              成绩 = InputBox("请输入学生" & j & "成绩")
  46.              总分 = 总分 + 成绩
  47.          Next
  48.      MsgBox "平均成绩" & 总分 / i
  49. End Sub

  50. Sub 循环作业5()
  51.      Dim i As Long, inputV As Long, maxv As Long, maxi As Long
  52.          For i = 1 To 5
  53.          inputV = Val(InputBox("请输入一个正数"))
  54.              If inputV > maxv Then
  55.                  maxv = inputV
  56.                  maxi = i
  57.              End If
  58.          Next
  59.      Debug.Print "最大数字"; maxv, "第"; maxi; "次输入"
  60. End Sub
复制代码

点评

作业4:最后输出该班级学生成绩的总分和平均分,只输出的平均分,没有总分  发表于 2017-7-26 10:32
循环作业3,算法不正确,结果不正确  发表于 2017-7-26 10:26
分级电影:Case Is > 18,这句判断不需要,直接 Case Else就可以了  发表于 2017-7-26 10:13
分级电影:level = MsgBox(IIf(figure, "可以看PG-13级", "可以看PG级"))这句语法判断不正确,得不到"可以看PG级"的结果,正确语句:MsgBox(IIf(figure = vbYes, "可以看PG-13级", "可以看PG级"   发表于 2017-7-26 10:05
回复 支持 1 反对 0

使用道具 举报

发表于 2017-7-20 08:49:55 | 显示全部楼层
本帖最后由 vinapu 于 2017-7-20 10:33 编辑

复制代码

回复 支持 反对

使用道具 举报

发表于 2017-7-20 09:06:51 | 显示全部楼层
本帖最后由 鱼生 于 2017-7-20 17:10 编辑
  1. <div class="blockcode"><blockquote>Sub case作业()
  2.     Dim OLD As Long, n1 As String
  3.     OLD = InputBox("请输入年龄")
  4.     Select Case OLD
  5.     Case Is <= 13
  6.         MsgBox "可以看 G 级电影"
  7.     Case 13 To 16
  8.          n1 = MsgBox("是否有家里大人陪同", vbYesNo)
  9.             If n1 = vbYes Then
  10.                 MsgBox "可以看PG-13 级"
  11.             Else
  12.                 MsgBox "可以看PG 级"
  13.                 End If
  14.     Case 16 To 18
  15.         MsgBox "可以看NC-17级"
  16.     Case Else
  17.         MsgBox "可以看R 级电影"
  18.     End Select
  19.    
  20. End Sub


  21. Sub 作业1()
  22.     Dim 成绩 As Long, i As Long
  23.     成绩 = InputBox("请输入小明的成绩")
  24.     If 成绩 >= 90 Then
  25.         MsgBox "奖励100元"
  26.     Else
  27.         For i = 1 To 99
  28.         Next
  29.         Debug.Print "小明抄写第" & i & "遍,我再也不敢马虎了。"
  30.     End If
  31.    
  32. End Sub

  33. Sub 作业2()
  34.     Dim i As Long, sum As Long
  35.     For i = 0 To 100 Step 7
  36.         sum = sum + i
  37.     Next
  38.     MsgBox sum
  39. End Sub

  40. Sub 作业3() '有问题

  41.     Dim sumV As Long, i As Long, sum1 As Long, sum2 As Long 'sum1为偶数,sum2为奇数,这个奇偶数是根据i(循环次数)判定
  42.     sum1 = 1
  43.     For i = 1 To 100
  44.         If i Mod 2 = 0 Then
  45.             sum1 = sum1 + i
  46.         Else
  47.             sum2 = sum2 + i
  48.         End If
  49.         sumV = sum1 - sum2 + 1
  50.     Next
  51.     MsgBox sumV
  52.         
  53. End Sub
  54. Sub 作业3补充()
  55.     Dim i As Long, sum As Long
  56.     For i = 0 To 99 Step 2
  57.         sum = i - sum + 1
  58.        Debug.Print sum
  59.     Next
  60.     Debug.Print sum + 1
  61.    
  62. End Sub

  63. Sub 作业4()
  64.     Dim 人数 As Long, 成绩 As Long, sum As Long, i As Long
  65.     人数 = InputBox("请输入班级人数")
  66.     For i = 1 To 人数
  67.         成绩 = InputBox("请输出成绩")
  68.         sum = sum + 成绩
  69.     Next
  70.     MsgBox "平均成绩:" & sum / 人数 & "分"
  71. End Sub

  72. Sub 作业5()
  73.     Dim maxV As Long, maxi As Long, i As Long, n1 As Long
  74.     For i = 1 To 5
  75.         maxi = InputBox("请输入一个数字")
  76.         If maxi < 0 Then
  77.             maxi = 0
  78.         ElseIf maxV < maxi Then 'maxV初始值为0,无需定义
  79.             maxV = maxi
  80.             If i <> 5 Then
  81.                 n1 = i
  82.             Else
  83.             n1 = 5
  84.             End If
  85.         End If
  86.     Next
  87.     MsgBox "用户输入过的最大数字" & maxV & ",该数字是第" & n1 & "次输入的。"
  88. End Sub


复制代码

点评

作业:结果正确  发表于 2017-7-26 11:02
作业4:要求:最后输出该班级学生成绩的总分和平均分。只有平均分输出,没有总分  发表于 2017-7-26 10:57
case作业,作业2正确,作业3结果正确,代码可以优化: If i Mod 2 = 0 Then sum1 = sum1 + i Else sum1 = sum1- i End If  发表于 2017-7-26 10:51
作业1:Debug.Print "小明抄写第" & i & "遍,我再也不敢马虎了。"应该放在29-30的语句中间,要不循环不干活,就没有意义了  发表于 2017-7-26 10:49
回复 支持 反对

使用道具 举报

发表于 2017-7-20 09:12:33 | 显示全部楼层
  1. Sub SelectCase作业()
  2.     Dim age As Long, level As String, figure
  3.            age = InputBox("你的年龄")
  4.            Select Case age
  5.                Case Is <= 13
  6.                  MsgBox "可以看G"
  7.                Case Is <= 16
  8.                  figure = (MsgBox("提问是否有家里大人陪同", vbYesNo + vbInformation))
  9.                  level = MsgBox(IIf(figure, "可以看PG-13", "可以看PG"))
  10.                Case Is <= 18
  11.                  MsgBox "可以看NC-17"
  12.                Case Is > 18
  13.                  MsgBox "可以看R"
  14.            End Select
  15. End Sub
复制代码
判断是否有大人陪同那一句有什么好的写法吗?
我额外定义了两个变量,来实现判断输出,感觉很多余,

点评

level = MsgBox(IIf(figure, "可以看PG-13", "可以看PG")),VBA代码,可以把这种写法忘记了  发表于 2017-7-26 11:03
回复 支持 反对

使用道具 举报

发表于 2017-7-20 09:16:26 | 显示全部楼层
  1. Sub SelectCase作业()
  2.     Dim age As Long, level As String, figure
  3.            age = InputBox("你的年龄")
  4.            Select Case age
  5.                Case Is <= 13
  6.                  MsgBox "G级"
  7.                Case Is <= 16
  8.                  figure = (MsgBox("提问是否有家里大人陪同", vbYesNo + vbInformation))
  9.                  level = MsgBox(IIf(figure, "PG-13", "PG"))
  10.                Case Is <= 18
  11.                  MsgBox "NC-17"
  12.                Case Is > 18
  13.                  MsgBox "R级"
  14.            End Select
  15. End Sub
复制代码
判断大人陪同那一句有什么好的写法吗?我额外定义了两个变量来实现判断输出,感觉很多余,
能否用iff一句话实现判断输出?

回复 支持 反对

使用道具 举报

发表于 2017-7-20 09:18:09 | 显示全部楼层
本帖最后由 vinapu 于 2017-7-20 09:21 编辑
  1. <div class="blockcode"><blockquote>Sub SelectCase作业()
  2.     Dim age As Long, level As String, figure
  3.            age = InputBox("你的年龄")
  4.            Select Case age
  5.                Case Is <= 13
  6.                  MsgBox "可以看G级电影"
  7.                Case Is <= 16
  8.                  figure = (MsgBox("提问是否有家里大人陪同", vbYesNo + vbInformation))
  9.                  level = MsgBox(IIf(figure, "可以看PG-13级", "可以看PG级"))
  10.                Case Is <= 18
  11.                  MsgBox "可以看NC-17级电影"
  12.                Case Is > 18
  13.                  MsgBox "可以看R级电影"
  14.            End Select
  15. End Sub
  16. '判断大人陪同那一句有什么好的写法吗?我额外定义了两个变量来实现判断输出,感觉很多余,
  17. '能否用iff一句话实现判断输出?

  18. Sub 循环作业1()
  19.        Dim i As Long, score As Long
  20.        score = InputBox("小明的考试成绩")
  21.            If score >= 90 Then
  22.                MsgBox "奖励100元"
  23.            Else
  24.                For i = 1 To 100
  25.                    Debug.Print "小明抄写第" & i&; "我再也不敢马虎了"
  26.                Next
  27.            End If
  28. End Sub

  29. Sub 循环作业2()
  30.        Dim i As Long, j As Long
  31.        For i = 0 To 100 Step 7
  32.            j = j + i
  33.        Next
  34.        MsgBox j
  35. End Sub

  36. Sub 循环作业3()
  37.        Dim i As Long, j As Long
  38.            For i = 1 To 100
  39.                j = j + i * (-1) ^ (i - 1)
  40.            Next
  41.        MsgBox j
  42. End Sub

  43. Sub 循环作业4()
  44.        Dim i As Integer, j As Long, 成绩 As Long, 总分 As Long
  45.        i = InputBox("输入学生人数")
  46.            For j = 1 To i
  47.                成绩 = InputBox("请输入学生" & j & "成绩")
  48.                总分 = 总分 + 成绩
  49.            Next
  50.        MsgBox "平均成绩" & 总分 / i
  51. End Sub

  52. Sub 循环作业5()
  53.        Dim i As Long, inputV As Long, maxv As Long, maxi As Long
  54.        For i = 1 To 5
  55.            inputV = Val(InputBox("请输入一个正数"))
  56.                If inputV > maxv Then
  57.                    maxv = inputV
  58.                    maxi = i
  59.                End If
  60.            Next
  61.        Debug.Print "最大数字"; maxv, "第"; maxi; "次输入"
  62. End Sub
复制代码


回复 支持 反对

使用道具 举报

发表于 2017-7-20 09:23:00 | 显示全部楼层
  1. Sub 作业()
  2.     Dim age As Long, level As String, figure
  3.            age = InputBox("你的年龄")
  4.            Select Case age
  5.                Case Is <= 13
  6.                  MsgBox "可以看G级电影"
  7.                Case Is <= 16
  8.                  figure = (MsgBox("提问是否有家里大人陪同", vbYesNo + vbInformation))
  9.                  level = MsgBox(IIf(figure, "可以看PG-13级", "可以看PG级"))
  10.                Case Is <= 18
  11.                  MsgBox "可以看NC-17级电影"
  12.                Case Is > 18
  13.                  MsgBox "可以看R级电影"
  14.            End Select
  15. End Sub
  16. '判断大人陪同那一句有什么好的写法吗?我额外定义了两个变量来实现判断输出,感觉很多余,
  17. '能否用iff一句话实现判断输出?

  18. Sub 循环作业1()
  19.        Dim i As Long, score As Long
  20.        score = InputBox("小明的考试成绩")
  21.            If score >= 90 Then
  22.                MsgBox "奖励100元"
  23.            Else
  24.                For i = 1 To 100
  25.                    Debug.Print "小明抄写第" & i&; "我再也不敢马虎了"
  26.                Next
  27.            End If
  28. End Sub

  29. Sub 循环作业2()
  30.        Dim i As Long, j As Long
  31.        For i = 0 To 100 Step 7
  32.            j = j + i
  33.        Next
  34.        MsgBox j
  35. End Sub

  36. Sub 循环作业3()
  37.        Dim i As Long, j As Long
  38.            For i = 1 To 100
  39.                j = j + i * (-1) ^ (i - 1)
  40.            Next
  41.        MsgBox j
  42. End Sub

  43. Sub 循环作业4()
  44.        Dim i As Integer, j As Long, 成绩 As Long, 总分 As Long
  45.        i = InputBox("输入学生人数")
  46.            For j = 1 To i
  47.                成绩 = InputBox("请输入学生" & j & "成绩")
  48.                总分 = 总分 + 成绩
  49.            Next
  50.        MsgBox "平均成绩" & 总分 / i
  51. End Sub

  52. Sub 循环作业5()
  53.        Dim i As Long, inputV As Long, maxv As Long, maxi As Long
  54.        For i = 1 To 5
  55.            inputV = Val(InputBox("请输入一个正数"))
  56.                If inputV > maxv Then
  57.                    maxv = inputV
  58.                    maxi = i
  59.                End If
  60.            Next
  61.        Debug.Print "最大数字"; maxv, "第"; maxi; "次输入"
  62. End Sub
复制代码

回复 支持 反对

使用道具 举报

发表于 2017-7-20 09:26:53 | 显示全部楼层
  1. Sub 作业()
  2.     Dim age As Long, level As String, figure
  3.            age = InputBox("your age?")
  4.            Select Case age
  5.                Case Is <= 13
  6.                  MsgBox "G"
  7.                Case Is <= 16
  8.                  figure = (MsgBox("adult company?", vbYesNo + vbInformation))
  9.                  level = MsgBox(IIf(figure, "PG-13", "PG"))
  10.                Case Is <= 18
  11.                  MsgBox "NC-17"
  12.                Case Is > 18
  13.                  MsgBox "R"
  14.            End Select
  15. End Sub
  16. '判断大人陪同那一句有什么好的写法吗?我额外定义了两个变量来实现判断输出,感觉很多余,
  17. '能否用iff一句话实现判断输出?

  18. Sub 循环作业1()
  19.        Dim i As Long, score As Long
  20.        score = InputBox("小明的考试成绩")
  21.            If score >= 90 Then
  22.                MsgBox "奖励100元"
  23.            Else
  24.                For i = 1 To 100
  25.                    Debug.Print "小明抄写第" & i&; "我再也不敢马虎了"
  26.                Next
  27.            End If
  28. End Sub

  29. Sub 循环作业2()
  30.        Dim i As Long, j As Long
  31.        For i = 0 To 100 Step 7
  32.            j = j + i
  33.        Next
  34.        MsgBox j
  35. End Sub

  36. Sub 循环作业3()
  37.        Dim i As Long, j As Long
  38.            For i = 1 To 100
  39.                j = j + i * (-1) ^ (i - 1)
  40.            Next
  41.        MsgBox j
  42. End Sub

  43. Sub 循环作业4()
  44.        Dim i As Integer, j As Long, 成绩 As Long, 总分 As Long
  45.        i = InputBox("输入学生人数")
  46.            For j = 1 To i
  47.                成绩 = InputBox("请输入学生" & j & "成绩")
  48.                总分 = 总分 + 成绩
  49.            Next
  50.        MsgBox "平均成绩" & 总分 / i
  51. End Sub

  52. Sub 循环作业5()
  53.        Dim i As Long, inputV As Long, maxv As Long, maxi As Long
  54.        For i = 1 To 5
  55.            inputV = Val(InputBox("请输入一个正数"))
  56.                If inputV > maxv Then
  57.                    maxv = inputV
  58.                    maxi = i
  59.                End If
  60.            Next
  61.        Debug.Print "最大数字"; maxv, "第"; maxi; "次输入"
  62. End Sub
复制代码

回复 支持 反对

使用道具 举报

发表于 2017-7-20 09:27:24 | 显示全部楼层
本帖最后由 vinapu 于 2017-7-20 10:31 编辑

复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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