Excel精英培训网

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

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

[复制链接]
发表于 2015-11-9 11:19 | 显示全部楼层 |阅读模式
本帖最后由 雪舞子 于 2015-11-15 12:05 编辑

作业说明及要求:

1、根据第三课所讲的内容,按老师布置的作业,编写一段自认为精练的代码;
2、提交作业请注明论坛ID及学号。如:A01-麻花_;
3、作业请以代码方式提交,标清题号并所有题贴到一个代码标签中,无需提交附件。 不会使用标签可移步帖子:http://www.excelpx.com/thread-322284-1-1.html
4、代码题要求强制声明变量,代码缩进; 不会缩进可使用缩进小工具:http://www.excelpx.com/thread-366281-1-1.html
5、跟帖不要重复占楼,有问题直接在原帖编辑;
6、本次课程时间安排紧凑,时间紧任务重,同学们加油!
7、作业截止时间:第4课上课日之18:00时

评分

参与人数 1 +20 金币 +20 收起 理由
qh8600 + 20 + 20 学委辛苦了

查看全部评分

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-11-9 12:15 | 显示全部楼层
A02-guofei0344_
  1. Sub 作业1()
  2. Dim a As Integer, b As Integer
  3.     For a = 1 To 7
  4.         For b = 1 To a
  5.             Cells(a, 8 - b) = "*"
  6.         Next
  7.     Next
  8. End Sub
复制代码
  1. Sub 作业2()
  2. Dim a As Integer, b As Integer
  3.     For a = 1 To 7
  4.         For b = a To 7
  5.             Cells(a, b) = "*"
  6.         Next
  7.     Next
  8. End Sub
复制代码
  1. Sub 作业3()
  2. Dim a As Integer, b As Integer
  3.     For a = 1 To 7
  4.         For b = 1 To a
  5.             Cells(a, 8 - b) = a
  6.         Next
  7.     Next
  8. End Sub
复制代码
  1. Sub 作业4()
  2. Dim a As Integer, b As Integer
  3.     For a = 1 To 7
  4.         For b = 1 To a
  5.             Cells(a, b) = b
  6.         Next
  7.     Next
  8. End Sub
复制代码
  1. Sub 作业超支()
  2. Dim a As Integer, i As Integer
  3.     For a = 2 To 32
  4.         i = Range("b" & a).Value + i
  5.         If i > 1000 Then
  6.             MsgBox Range("a" & a).Value & " 我超支了"
  7.             Exit Sub
  8.         End If
  9.     Next
  10.     MsgBox "这个月我很省,没有超支"
  11. End Sub
复制代码

点评

非常棒!  发表于 2015-11-13 18:42

评分

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

查看全部评分

回复

使用道具 举报

发表于 2015-11-9 14:57 | 显示全部楼层
  1. Sub 作业1()  'A03开心妙妙
  2.     Dim i&, j&, n&
  3.     Range("B2:H8").Interior.ColorIndex = 1
  4.     n = 9
  5.     For i = 2 To 8
  6.         n = n - 1
  7.         For j = 8 To n Step -1
  8.             Cells(i, j) = "*"
  9.             Cells(i, j).Font.ColorIndex = 2
  10.         Next
  11.     Next
  12. End Sub
  13. Sub 作业2()
  14.     Dim i&, j&
  15.     Range("J2:P8").Interior.ColorIndex = 1
  16.     For i = 8 To 2 Step -1
  17.         For j = 16 To i + 8 Step -1
  18.             Cells(i, j) = "*"
  19.             Cells(i, j).Font.ColorIndex = 2
  20.         Next
  21.     Next
  22. End Sub
  23. Sub 作业3()
  24.     Dim i&, j&, n&
  25.     Range("B10:H16").Interior.ColorIndex = 1
  26.     n = 9
  27.     For i = 10 To 16
  28.         n = n - 1
  29.         For j = 8 To n Step -1
  30.             Cells(i, j) = i - 9
  31.             Cells(i, j).Font.ColorIndex = 2
  32.         Next
  33.     Next
  34. End Sub
  35. Sub 作业4()
  36.     Dim i&, j&
  37.     Range("J10:P16").Interior.ColorIndex = 1
  38.     For i = 10 To 16
  39.         For j = 10 To i
  40.             Cells(i, j) = i - 9
  41.             Cells(i, j).Font.ColorIndex = 2
  42.         Next
  43.     Next
  44. End Sub
  45. Sub 循环作业()
  46.     Dim i&, sumS&
  47.     For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
  48.         sumS = sumS + Cells(i, 2)
  49.         If sumS >= 1000 Then
  50.             MsgBox "这个月超支了,超支的日期是:" & Cells(i, 1)
  51.             Exit For
  52.         End If
  53.     Next
  54. End Sub
复制代码

点评

很棒,而且加上了底色!循环题未超支情况好像没有提示。  发表于 2015-11-13 18:44

评分

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

查看全部评分

回复

使用道具 举报

发表于 2015-11-9 17:55 | 显示全部楼层
1、
  1. Sub 星星1()
  2.     Dim i As Integer, j As Integer
  3.         For i = 1 To 7
  4.             For j = 7 To 8 - i Step -1
  5.                 Cells(i, j) = "*"
  6.             Next j
  7.         Next i
  8. End Sub
  9. Sub 星星2()
  10.     Dim i As Integer, j As Integer
  11.         For i = 1 To 7
  12.             For j = i To 7
  13.                 Cells(i, j) = "*"
  14.             Next j
  15.         Next i
  16. End Sub
  17. Sub 星星3()
  18.     Dim i As Integer, j As Integer
  19.         For i = 1 To 7
  20.             For j = 7 To 8 - i Step -1
  21.                 Cells(i, j) = i
  22.             Next j
  23.         Next i
  24. End Sub
  25. Sub 星星4()
  26.     Dim i As Integer, j As Integer
  27.         For i = 1 To 7
  28.             For j = i To 7
  29.                 Cells(i, j) = j
  30.             Next j
  31.         Next i
  32. End Sub
复制代码
2、
  1. Sub 苦逼的生活费4()
  2.     Dim i As Long, sums As Long, j As Long
  3.         j = Application.InputBox("本月媳妇给了多少生活费", "系统:", , , , , , 1)
  4.             If j = False Then Exit Sub
  5.             For i = 2 To 2 ^ 6
  6.                 If sums > j Then
  7.                 GoTo 1
  8.                 Else
  9.                     If sums = j Then
  10.                         GoTo 2
  11.                         Else
  12.                             GoTo 3
  13.                     End If
  14.                 End If
  15. 3              sums = sums + Cells(i, 2)
  16.              Next i
  17.             If sums < j Then
  18.                 MsgBox "还剩余" & j - sums & "元,可以出去潇洒啦!", vbInformation, "嘘,小声点,别让媳妇听见"
  19.             End If
  20.             Exit Sub
  21. 1:      MsgBox "这个月已经超支了,超支日期" & Cells(i, 1) & "," & Chr(10) & "超支金额" & sums - j & "元,赶紧找媳妇报账,提" & Cells(i + 1, 1) & "日计划", vbInformation, "温馨提醒"
  22.         Cells(i, 1).Interior.ColorIndex = 3
  23.         Exit Sub
  24. 2:      MsgBox "媳妇本月给的零花钱刚好,果然会持家!", vbInformation, "哇哈哈"
  25.         Exit Sub
  26. End Sub
复制代码

点评

前面几个作业很棒,最后一题转来转去转的好晕,统计结果下偏了一行,转的吧?  发表于 2015-11-14 12:45

评分

参与人数 3 +37 金币 +19 收起 理由
air05 + 9 赞一个!神姐棒棒的
雪舞子 + 19 + 19 赞一个!
橘子红 + 9 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2015-11-9 21:20 | 显示全部楼层
  1. Option Explicit

  2. Sub 星星1()
  3.     Dim i%, j%
  4.     For i = 1 To 7
  5.         For j = 1 To 7
  6.             If i >= j Then
  7.                 Cells(i, j) = "*"
  8.             End If
  9.         Next
  10.     Next
  11. End Sub

  12. Sub 星星2()
  13.     Dim i%, j%
  14.     For i = 1 To 7
  15.         For j = 1 To 7
  16.             If i <= j Then
  17.                 Cells(i, j) = "*"
  18.             End If
  19.         Next
  20.     Next
  21. End Sub

  22. Sub 数字1()
  23.     Dim i%, j%
  24.     For i = 1 To 7
  25.         For j = 1 To 7
  26.             If i >= j Then
  27.                 Cells(i, 8 - j) = i
  28.             End If
  29.         Next
  30.     Next
  31. End Sub

  32. Sub 数字2()
  33.     Dim i%, j%
  34.     For i = 1 To 7
  35.         For j = 1 To 7
  36.             If i >= j Then
  37.                 Cells(i, j) = j
  38.             End If
  39.         Next
  40.     Next
  41. End Sub

  42. Sub 我超支了吗()
  43.     Dim i%, rows%, x%, y%, j As Range, sums%
  44.     rows = Range("b65536").End(xlUp).Row - 1
  45.     x = WorksheetFunction.Sum(Range("b2:b" & rows))
  46.     If x > 1000 Then GoTo 100
  47.     MsgBox "这个月我没有超支。", vbOKOnly, "这个月我超支了吗?"
  48.     Exit Sub
  49. 100:
  50.     If x > 1000 Then
  51.         For i = 2 To rows
  52.             y = Range("b" & i).Value
  53.             sums = sums + y
  54.             If sums > 1000 Then Exit For
  55.         Next
  56.         Set j = Range("a" & i)
  57.     End If
  58.     MsgBox "这个月我超支了,超支的日期是: " & j, vbOKOnly, "这个月我超支了吗?"
  59. End Sub
复制代码

点评

最后一题前面一段代码可以简化掉,判断超支后else就是没有超支了。  发表于 2015-11-15 11:23

评分

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

查看全部评分

回复

使用道具 举报

发表于 2015-11-10 10:29 | 显示全部楼层
本帖最后由 ZL在水一方 于 2015-11-10 16:23 编辑

A12-ZL在水一方
  1. Option Explicit
  2. Sub 循环01()
  3. Dim i As Integer, j As Integer
  4. With [a1:g7]
  5.     .ClearContents
  6.     .Interior.Color = vbBlack
  7.     .Font.Color = vbWhite
  8.     .RowHeight = 20
  9.     .ColumnWidth = 3
  10.     For i = 1 To 7
  11.         For j = 7 To 8 - i Step -1
  12.             Cells(i, j) = "*"
  13.         Next j
  14.     Next i
  15. End With
  16. End Sub
复制代码
  1. Option Explicit
  2. Sub 循环02()
  3. Dim i As Integer, j As Integer
  4. [a1:g7].ClearContents
  5.     For i = 1 To 7
  6.         For j = 7 To i Step -1
  7.             Cells(i, j) = "*"
  8.         Next j
  9.     Next i
  10. End Sub
复制代码
  1. Option Explicit
  2. Sub 循环03()
  3. Dim i As Integer, j As Integer
  4. [a1:g7].ClearContents
  5.     For i = 1 To 7
  6.         For j = 7 To 8 - i Step -1
  7.             Cells(i, j) = i
  8.         Next j
  9.     Next i
  10. End Sub
复制代码
  1. Option Explicit
  2. Sub 循环04()
  3. Dim i As Integer, j As Integer
  4. [a1:g7].ClearContents
  5.     For i = 1 To 7
  6.         For j = 1 To i
  7.             Cells(i, j) = j
  8.         Next j
  9.     Next i
  10. End Sub
复制代码
  1. Option Explicit
  2. Sub 计算超支日期()
  3. Dim i As Integer, sums As Integer
  4. i = 1
  5.     Do While sums < 1000 And Cells(i, 2) <> ""
  6.         i = i + 1
  7.         sums = sums + Cells(i, 2)
  8.     Loop
  9.     If sums > 1000 Then
  10.         MsgBox "截止" & Cells(i, 1) & "已超支!超支金额为" & sums - 1000 & "元。"
  11.     Else
  12.         MsgBox "本月未超支,结余" & 1000 - sums & "元。"
  13.     End If
  14. End Sub
复制代码

点评

代码很完美,前几题加上了清除及底色代码,考虑的很细致,写代码就需要这样严禁的态度。最后一题do循环用的也很好,缩进还有一点小问题。加油!  发表于 2015-11-15 11:30

评分

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

查看全部评分

回复

使用道具 举报

发表于 2015-11-10 12:07 | 显示全部楼层
本帖最后由 denil 于 2015-11-10 13:56 编辑
  1. Sub 超支()
  2.     Dim m As Integer
  3.     Dim k As Integer
  4.      k = 2
  5. aa:
  6.     On Error Resume Next
  7.        m = m + Cells(k, 2)
  8.         If m <= 1000 Then
  9.           k = k + 1
  10.           GoTo aa
  11.         Else
  12.             MsgBox "超支日期:" & Cells(k, 1)
  13.             
  14.        End If
  15. End Sub
复制代码

点评

前几题不难,好好考虑一下或参考其他同学代码写一下,学VBA必须多写多动。最后一题只考虑了一种情况不够周密,另外代码中尽量少用Error,能不用就不用。  发表于 2015-11-15 11:36

评分

参与人数 1 +10 金币 +10 收起 理由
雪舞子 + 10 + 10 淡定

查看全部评分

回复

使用道具 举报

发表于 2015-11-10 17:01 | 显示全部楼层
打扰老师的保贵时间了

A16-hq12345.rar

31.76 KB, 下载次数: 3

点评

直接贴代码即可,注意看作业贴要求。代码写的很好,最后一题用了两种方法,但未超支情况都没有给出提示,有些欠缺。  发表于 2015-11-15 11:40

评分

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

查看全部评分

回复

使用道具 举报

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

姓名:A01-麻花_

第一题
  1. Sub 作业1()
  2.     Dim i As Integer, j As Integer
  3.     For i = 1 To 7
  4.         For j = 1 To i
  5.             Cells(i, 8 - j) = "*"
  6.         Next j
  7.     Next i
  8. End Sub
复制代码
第二题
  1. Sub 作业2()
  2.     Dim i As Integer, j As Integer
  3.     For i = 1 To 7
  4.         For j = 1 To i
  5.             Cells(j, i) = "*"
  6.         Next j
  7.     Next i
  8. End Sub
复制代码
第三题
  1. Sub 作业3()
  2.   Dim i As Integer, j As Integer
  3.     For i = 1 To 7
  4.         For j = 1 To i
  5.             Cells(i, 8 - j) = i
  6.         Next j
  7.     Next i
  8. End Sub
复制代码
第四题
  1. Sub 作业4()
  2.     Dim i As Integer, j As Integer
  3.     For i = 1 To 7
  4.         For j = 1 To i
  5.             Cells(i, j) = j
  6.         Next j
  7.     Next i
  8. End Sub
复制代码
第五题
还研究下,总感觉哪里串不起来,在想想哈~


回答完毕

点评

前四题代码非常好。最后一题动动脑写一下,自己动脑写出来会有一种成功感,加油!  发表于 2015-11-15 11:43

评分

参与人数 2 +27 金币 +18 收起 理由
qh8600 + 18 + 18 赞一个!
橘子红 + 9 小麻花加油!

查看全部评分

回复

使用道具 举报

发表于 2015-11-12 22:30 | 显示全部楼层
本帖最后由 jzkwf 于 2015-11-12 22:31 编辑

A06:jzkwf
  1. Option Explicit

  2. Sub 练习作业一()
  3.     Dim i As Integer
  4.     Dim j As Integer
  5.     For i = 1 To 7
  6.         For j = 7 To 8 - i Step -1
  7.             Cells(i, j) = "*"
  8.         Next
  9.     Next
  10. End Sub

  11. Sub 练习作业二()
  12.     Dim i As Integer
  13.     Dim j As Integer
  14.     For i = 1 To 7
  15.         For j = 7 To i Step -1
  16.             Cells(i, j) = "*"
  17.         Next
  18.     Next
  19. End Sub

  20. Sub 练习作业三()
  21.     Dim i As Integer
  22.     Dim j As Integer
  23.     For i = 1 To 7
  24.         For j = 7 To 8 - i Step -1
  25.             Cells(i, j) = i
  26.         Next
  27.     Next
  28. End Sub

  29. Sub 练习作业四()
  30.     Dim i As Integer
  31.     Dim j As Integer
  32.     For i = 1 To 7
  33.         For j = 7 To i Step -1
  34.             Cells(i, j) = j
  35.         Next
  36.     Next
  37. End Sub

  38. Sub 循环作业()
  39.     Dim i As Integer
  40.     Dim t As Integer
  41.     Dim j As Integer
  42.     i = InputBox("请属于预算金额", "预算", , , 1)
  43.     For t = 2 To 32
  44.         j = Range("b" & t) + j
  45.         If j > i Then
  46.             MsgBox "超支了    " & Range("a" & t)
  47.             Exit Sub
  48.         End If
  49.     Next
  50.     MsgBox "还可以逍遥"
  51. End Sub
复制代码
回答完毕!

点评

代码没问题,最后一题用了交互方法,不错。很棒!  发表于 2015-11-15 11:49

评分

参与人数 2 +29 金币 +20 收起 理由
air05 + 9 赞一个!峰组好历害
qh8600 + 20 + 20 赞一个!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 20:55 , Processed in 0.745393 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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