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

零基础12期-第七课作业贴

[复制链接]
发表于 2017-12-4 21:21:58 | 显示全部楼层 |阅读模式
本帖最后由 开心妙妙 于 2017-12-11 18:22 编辑

交作业之前先看群文件作业提交说明
回复

使用道具 举报

发表于 2017-12-6 17:09:06 | 显示全部楼层
  1. Sub 出货表练习()
  2.     Dim j#, i%, s%, b%, x%
  3.     For i = 2 To 6
  4.         j = 0
  5.         b = 0
  6.         s = 0
  7.         For x = 2 To 37
  8.             If Cells(i, 10) = Cells(x, 1) Then
  9.                 j = j + Cells(x, 5)
  10.                 b = b + 1
  11.                 s = s + Cells(x, 3)
  12.             End If
  13.         Next x
  14.         Cells(i, 11) = j
  15.         Cells(i, 12) = j / b
  16.         Cells(i, 13) = j / s
  17.     Next i
  18. End Sub

  19. Sub 九九乘法表()
  20.     Dim i%, j%
  21.     For i = 1 To 9
  22.         For j = 1 To 9
  23.             If i <= j Then
  24.             Cells(j, i) = i & "×" & j & "=" & i * j
  25.             End If
  26.         Next
  27.     Next
  28. End Sub
复制代码

点评

不错,赞  发表于 3 天前
回复 支持 1 反对 0

使用道具 举报

发表于 2017-12-5 00:08:08 | 显示全部楼层
本帖最后由 chymmych 于 2017-12-11 17:28 编辑
  1. '作业1,成一个9×9 乘法表 默认以A1 为顶点,尽量写成三角型的。
  2. Sub ChengFa()
  3.     Dim i As Long, j As Long
  4.     For i = 1 To 9
  5.         For j = 1 To i
  6.             Cells(i, j) = j & "*" & i & "=" & i * j
  7.         Next
  8.     Next
  9. End Sub

  10. '作业2:完成出货表作业
  11. Sub ChuHou()
  12.     Dim i As Long, j As Long, sum1 As Double, sumi As Long, sumNum As Long
  13.     For j = 2 To 6
  14.         sumi = 0
  15.         sumNum = 0
  16.         sum1 = 0
  17.         For i = 2 To 37
  18.             
  19.             If Cells(i, "a") = Cells(j, "j") Then
  20.                 sumi = sumi + 1
  21.                 sumNum = sumNum + Cells(i, "c")
  22.                 sum1 = sum1 + Cells(i, "e")
  23.             End If
  24.         Next
  25.         Cells(j, "k") = sum1
  26.         Cells(j, "l") = sum1 / sumi
  27.         Cells(j, "M") = sum1 / sumNum
  28.     Next


  29. End Sub
  30. '******作业3:蛇形填数
  31. Sub sheXing()
  32.     Dim i As Long, j As Long, k As Long, a As Long, b As Long, c As Long, d As Long
  33.     i = 1
  34.     j = 8
  35.     k = 1
  36.     Do Until i > j
  37.         For a = i To j
  38.             Cells(i, a) = k
  39.             k = k + 1
  40.         Next
  41.         For b = i + 1 To j
  42.             Cells(b, j) = k
  43.             k = k + 1
  44.         Next
  45.         For c = j - 1 To i Step -1
  46.             Cells(j, c) = k
  47.             k = k + 1
  48.         Next
  49.         For d = j - 1 To i + 1 Step -1
  50.             Cells(d, i) = k
  51.             k = k + 1
  52.         Next
  53.         i = i + 1
  54.         j = j - 1
  55.     Loop
  56. End Sub
复制代码

点评

结果正确,思路也很赞  发表于 5 天前

评分

参与人数 1登攀 +1 收起 理由
开心妙妙 + 1 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2017-12-5 13:03:54 | 显示全部楼层
本帖最后由 huwenjun727 于 2017-12-6 14:56 编辑
  1. '丫头不乖交作业啦
  2. '作业1:生成一个9×9 乘法表 默认以A1 为顶点,尽量写成三角型的。
  3. Sub 乘法表()
  4. Dim i As Long, j As Long
  5.     For i = 1 To 9
  6.         For j = 1 To 9
  7.             If i >= j Then
  8.             Cells(i, j) = j & "x" & i & "=" & i * j
  9.             End If
  10.         Next j
  11.     Next i
  12. End Sub

  13. '作业2:完成出货表作业

  14. Sub 货品总金额()
  15.     Dim i As Long, 通菱总笔数 As Long, 明通总笔数 As Long, 宏巨总笔数 As Long, 威化总笔数 As Long, 胜达总笔数 As Long, _
  16.      通菱总数量 As Long, 明通总数量 As Long, 宏巨总数量  As Long, 威化总数量 As Long, 胜达总数量  As Long
  17.         Cells(2, 11) = 0
  18.         Cells(3, 11) = 0
  19.         Cells(4, 11) = 0
  20.         Cells(5, 11) = 0
  21.         Cells(6, 11) = 0
  22.         通菱总笔数 = 0
  23.         明通总笔数 = 0
  24.         宏巨总笔数 = 0
  25.         威化总笔数 = 0
  26.         胜达总笔数 = 0
  27.         通菱总数量 = 0
  28.         明通总数量 = 0
  29.         宏巨总数量 = 0
  30.         威化总数量 = 0
  31.         胜达总数量 = 0
  32.      
  33.     For i = 2 To 37
  34.         If Cells(i, 1) = "通菱电子" Then
  35.             Cells(2, 11) = Cells(i, 5) + Cells(2, 11) '通菱总金额
  36.             通菱总笔数 = 通菱总笔数 + 1   '通菱总笔数
  37.             Cells(2, 12) = Cells(2, 11) / 通菱总笔数  '通菱每笔平均价格 = 总金额/总笔数
  38.             通菱总数量 = 通菱总数量 + Cells(i, 3)  '通菱数量
  39.             Cells(2, 13) = Cells(2, 11) / 通菱总数量  '通菱平均单价=总金额/总数量
  40.       
  41.         ElseIf Cells(i, 1) = "明通电子" Then
  42.             Cells(3, 11) = Cells(i, 5) + Cells(3, 11) '明通总金额
  43.             明通总笔数 = 明通总笔数 + 1 '明通总笔数
  44.             Cells(3, 12) = Cells(3, 11) / 明通总笔数 '明通每笔平均价格 = 总金额/总笔数
  45.             明通总数量 = 明通总数量 + Cells(i, 3) '明通数量
  46.             Cells(3, 13) = Cells(3, 11) / 明通总数量 '明通平均单价=总金额/总数量
  47.       
  48.         ElseIf Cells(i, 1) = "宏巨电子" Then
  49.             Cells(4, 11) = Cells(i, 5) + Cells(4, 11) '宏巨总金额
  50.             宏巨总笔数 = 宏巨总笔数 + 1 '宏巨总笔数
  51.             Cells(4, 12) = Cells(4, 11) / 宏巨总笔数 '宏巨每笔平均价格 = 总金额/总笔数
  52.             宏巨总数量 = 宏巨总数量 + Cells(i, 3) '宏巨数量
  53.             Cells(4, 13) = Cells(4, 11) / 宏巨总数量 '宏巨平均单价=总金额/总数量
  54.             
  55.         ElseIf Cells(i, 1) = "威化公司" Then
  56.             Cells(5, 11) = Cells(i, 5) + Cells(5, 11) '威化总金额
  57.             威化总笔数 = 威化总笔数 + 1 '威化总笔数
  58.             Cells(5, 12) = Cells(5, 11) / 威化总笔数 '威化每笔平均价格 = 总金额/总笔数
  59.             威化总数量 = 威化总数量 + Cells(i, 3) '威化数量
  60.             Cells(5, 13) = Cells(5, 11) / 威化总数量 '威化平均单价=总金额/总数量
  61.             
  62.         Else: Cells(i, 1) = "胜达电子"
  63.             Cells(6, 11) = Cells(i, 5) + Cells(6, 11) '胜达总金额
  64.             胜达总笔数 = 胜达总笔数 + 1 '胜达总笔数
  65.             Cells(6, 12) = Cells(6, 11) / 胜达总笔数 '胜达每笔平均价格 = 总金额/总笔数
  66.             胜达总数量 = 胜达总数量 + Cells(i, 3) '胜达数量
  67.             Cells(6, 13) = Cells(6, 11) / 胜达总数量 '胜达平均单价=总金额/总数量
  68.      End If
  69.      Next
  70.      
  71. End Sub

  72. '******作业3:蛇形填数
  73. Sub 蛇形填数()
  74. Dim i As Long, j As Long, 递增 As Long, n As Long, k As Long, 递减 As Long  'i ,j是变量来定义单元格,递减为执行递减行,递减列时执行
  75.     i = 0
  76.     j = 1
  77.     递增 = 0
  78.     n = 20 '需要执行蛇形填空的列数,可更改
  79.     k = 0 'k是目前的执行到的数字
  80.     递减 = 0 '每执行一圈循环要减去相应圈数
  81.    
  82.     Do
  83.         For i = j To n - 1    '递增行
  84.             Cells(j, i) = 递增 + 1
  85.             递增 = 递增 + 1
  86.             k = k + 1
  87.         Next
  88.         For i = j To n - 1 '递增列
  89.             Cells(i, n) = 递增 + 1
  90.             递增 = 递增 + 1
  91.             k = k + 1
  92.         Next                '递增行,递增列结束,开始执行递减行和递减列
  93.            递增 = k       '递减行起始数要等于目前的执行到的数字
  94.         For i = j + 1 To n '递减行
  95.             Cells(n, i) = 递增 - 递减 + n - 1
  96.             递增 = 递增 - 1
  97.             k = k + 1
  98.         Next
  99.             递增 = k
  100.         For i = j + 1 To n '递减列
  101.             Cells(i, j) = 递增 - 递减 + n - 1
  102.             递增 = 递增 - 1
  103.             k = k + 1
  104.         Next  '缩小循环范围
  105.         n = n - 1
  106.         j = j + 1
  107.         i = i + 1
  108.         递增 = k
  109.        递减 = 递减 + 1
  110.       
  111.     Loop Until j > n
  112.    
  113.     End Sub
复制代码

点评

作业3: 结果不正确,如果是奇数的时候,会缺了一个数未填上,可以参看四楼的代码  发表于 5 天前
作业2:结果正确,通用性不是很好,可以参看二楼的代码。在单元格中累加,可以定义变量累加,最后赋值给单元格  发表于 5 天前
作业1正确,可以优化:for j=1 to 9,可以改成for j=1 to i,去除判断,这样省了循环的次数并省去的判断,可以提高运行效率  发表于 5 天前
回复 支持 反对

使用道具 举报

发表于 2017-12-5 14:39:03 | 显示全部楼层
  1. Sub 九九乘法表()
  2.     Dim i As Long, j As Long
  3.     For i = 1 To 9
  4.         For j = 1 To i
  5.             Cells(i, j) = j & "*" & i & "=" & j * i
  6.         Next
  7.     Next
  8. End Sub
  9. Sub 出货表()
  10.     Dim i As Long, j As Long, 总金额 As Double, 数量 As Long, 笔数 As Long
  11.     For j = 2 To 6
  12.         总金额 = 0
  13.         数量 = 0
  14.         笔数 = 0
  15.         For i = 2 To 37
  16.             If Cells(i, 1) = Cells(j, 10) Then
  17.                 总金额 = 总金额 + Cells(i, 5)
  18.                 数量 = 数量 + Cells(i, 3)
  19.                 笔数 = 笔数 + 1
  20.             End If
  21.         Next
  22.             Cells(j, 11) = 总金额
  23.             Cells(j, 12) = 总金额 / 笔数
  24.             Cells(j, 13) = 总金额 / 数量
  25.     Next
  26. End Sub
  27. Sub 蛇形数字()
  28.     Dim n As Long, i As Long, j As Long, k As Long
  29.     n = InputBox("请输入蛇形数字边长正整数n")
  30.     Cells(1, 1) = 1
  31.     i = 1
  32.     j = 1
  33.     k = 1
  34.     Do While k <= n And n >= 1
  35.         Do While j + 1 <= n
  36.             Cells(i, j + 1) = Cells(i, j) + 1
  37.             j = j + 1
  38.         Loop
  39.         Do While i + 1 <= n
  40.             Cells(i + 1, j) = Cells(i, j) + 1
  41.             i = i + 1
  42.         Loop
  43.         Do While j - 1 >= k
  44.             Cells(i, j - 1) = Cells(i, j) + 1
  45.             j = j - 1
  46.         Loop
  47.         Do While i - 2 >= k
  48.             Cells(i - 1, j) = Cells(i, j) + 1
  49.             i = i - 1
  50.         Loop
  51.     n = n - 1
  52.     k = k + 1
  53.     Loop
  54. End Sub
复制代码

点评

非常棒  发表于 5 天前

评分

参与人数 1登攀 +2 收起 理由
开心妙妙 + 2 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2017-12-5 14:41:07 | 显示全部楼层
本帖最后由 cangshanjushi 于 2017-12-5 14:42 编辑
  1. Sub 乘法表格()
  2.   Dim i As Long, j As Long
  3.   
  4.    For i = 1 To 9
  5.       For j = 1 To 9
  6.       If i >= j Then
  7.        cells(i, j) = i & "*" & j & "=" & i * j
  8.        Else
  9.         cells(i, j) = ""
  10.       End If
  11.       Next
  12.    Next
  13. End Sub

  14. '作业2:完成出货表作业

  15. Sub 出货表()
  16.   Dim i As Long, j As Long, n As Long, sum As Double
  17.    
  18.     For j = 19 To 23
  19.         For i = 19 To 54
  20.             If cells(j, 10) = cells(i, 1) Then
  21.               n = n + 1
  22.               sum = sum + cells(i, 3)
  23.               cells(j, 11) = cells(j, 11) + cells(i, 5)
  24.               cells(j, 12) = cells(j, 11) / n
  25.               cells(j, 13) = cells(j, 11) / sum
  26.             End If
  27.         Next
  28.         n = 0
  29.         sum = 0
  30.     Next
  31. End Sub
复制代码

点评

结果正确,思路也不错  发表于 5 天前
作业2:在单元格中累加,可以定义变量累加,最后赋值给单元格 ,可以参看四楼的代码  发表于 5 天前
作业1可以优化:for j=1 to 9,可以改成for j=1 to i,去除判断,这样省了循环的次数并省去的判断,可以提高运行效率  发表于 5 天前
回复 支持 反对

使用道具 举报

发表于 2017-12-5 15:15:10 | 显示全部楼层

  1. 'homework 1

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

  12. 'homework 2
  13. 'partially finished, don't know how to count the number of trade
  14. Sub totalproductvalue()
  15.     Dim i As Long, j As Long
  16.     For i = 1 To 37
  17.         For j = 2 To 6
  18.             If Cells(i, "a") = Cells(j, "j") Then
  19.                     Cells(j, "k") = Cells(i, "e") + Cells(j, "k") 'total product value
  20.                     Cells(j, "n") = Cells(i, "c") + Cells(j, "n") 'add a new column for total quantity
  21.                     Cells(j, "m") = Cells(j, "k") / Cells(j, "n") 'average unit price
  22.             End If
  23.         Next
  24.     Next
  25. End Sub
复制代码

点评

循环的概念算是明白了,不错  发表于 5 天前
作业2:每笔平均价格未计算,这里的每笔,就是一条记录就是一笔  发表于 5 天前
作业1结果正确,不错  发表于 5 天前
回复 支持 反对

使用道具 举报

发表于 2017-12-5 15:50:06 | 显示全部楼层
  1. Sub 九九乘法表()
  2.     Dim i As Long, j As Long
  3.     Range("A1:I9").ClearContents
  4.         For i = 1 To 9
  5.             For j = 1 To 9
  6.                 If i >= j Then Cells(i, j) = j & "*" & i & "=" & j * i
  7.             Next
  8.         Next
  9. End Sub
  10. Sub 出货表()
  11.     Dim sum As Double, Quantity As Double, n As Long, i As Long, k As Long
  12.         Range("K2:M6").ClearContents
  13.         For k = 2 To 6
  14.             n = 0
  15.             Quantity = 0
  16.             For i = 2 To 37
  17.                 If Cells(k, 10) = Cells(i, 1) Then
  18.                     n = n + 1
  19.                     Quantity = Quantity + Cells(i, 3)
  20.                     Cells(k, 11) = Cells(k, 11) + Cells(i, 5)
  21.                     Cells(k, 12) = Cells(k, 11) / n
  22.                     Cells(k, 13) = Cells(k, 11) / Quantity
  23.                 End If
  24.             Next
  25.         Next
  26. End Sub
  27. Sub 蛇形填数()
  28.     Dim i As Long, j As Long, n As Long, num As Long, InitialV As Long, FinalV As Long, a As Long
  29.     InitialV = 1
  30.     FinalV = InputBox("请输入需要生成的蛇开区域宽度:")
  31.     a = FinalV
  32.     i = 1
  33.     Do
  34.         For j = InitialV To FinalV
  35.             num = num + 1
  36.             Cells(i, j) = num
  37.         Next
  38.         j = FinalV
  39.         For i = InitialV + 1 To FinalV
  40.             num = num + 1
  41.             Cells(i, j) = num
  42.         Next
  43.         i = FinalV
  44.         For j = FinalV - 1 To InitialV Step -1
  45.             num = num + 1
  46.             Cells(i, j) = num
  47.         Next
  48.         j = InitialV
  49.         For i = FinalV - 1 To InitialV + 1 Step -1
  50.             num = num + 1
  51.             Cells(i, j) = num
  52.         Next
  53.         
  54.         InitialV = InitialV + 1
  55.         FinalV = FinalV - 1
  56.         i = i + 1
  57.     Loop Until num = a ^ 2
  58. End Sub
复制代码

点评

不错,赞  发表于 5 天前
回复 支持 反对

使用道具 举报

发表于 2017-12-5 21:24:26 | 显示全部楼层
本帖最后由 网站太垃 于 2017-12-5 21:26 编辑
  1. '乘法表

  2. ' 我是民航骄子

  3. Option Explicit



  4. Sub 乘法表()

  5.     Dim i As Integer, j As Integer, k As String
  6.    
  7.     For i = 1 To 9
  8.         For j = 1 To i
  9.         
  10.         'k = CStr(j) & "*" & CStr(i) & "=" & CStr(i * j)
  11.         
  12.         k = j & "*" & i & "=" & i * j
  13.         
  14.         Cells(i, j).Value = k
  15.         
  16.         Next
  17.     Next


  18. End Sub
复制代码


  1. Option Explicit

  2. '我是民航骄子


  3. Sub 出货表()

  4.     Dim i As Integer, j As Integer, k As Integer
  5.     Dim sum As Double, number_平均价格 As Integer
  6.     Dim number_平均单价 As Integer
  7.    
  8.    
  9.     For i = 2 To 6
  10.         For j = 2 To 37
  11.         
  12.         If Cells(j, 1) = Cells(i, 10) Then
  13.             sum = sum + Cells(j, 5).Value
  14.             number_平均价格 = number_平均价格 + 1
  15.             number_平均单价 = number_平均单价 + Cells(j, 3).Value
  16.         End If
  17.         Next
  18.         
  19.         Cells(i, 11).Value = sum
  20.         Cells(i, 12).Value = sum / number_平均价格
  21.         Cells(i, 13).Value = sum / number_平均单价
  22.         
  23.         sum = 0
  24.         number_平均价格 = 0
  25.         number_平均单价 = 0
  26.         
  27.     Next
  28.    
  29.    
  30. End Sub
复制代码



  1. Option Explicit

  2. '我是民航骄子


  3. Sub 填数字()

  4.     Dim i As Integer, j As Integer, y As Integer
  5.     Dim z As Integer, n As Integer
  6.    
  7.     n = InputBox("请输入填数字的阶数")
  8.     'n = 6
  9.    
  10.     n = n - 1 'n是阶数和每个循环走的步长
  11.     z = 1 'z是输出的值
  12.    
  13.     i = 1 'i,j,y用来记录空间位置
  14.     j = 1
  15.    
  16.     Do While n > 0
  17.    
  18.         For j = 1 To n
  19.             Cells(i + y, j + y).Value = z
  20.             z = z + 1
  21.         Next
  22.         
  23.       
  24.         For i = 1 To n
  25.             Cells(i + y, j + y).Value = z
  26.             z = z + 1
  27.         Next
  28.         'MsgBox (i)
  29.         For j = n To 1 Step -1
  30.             Cells(i + y, j + y + 1).Value = z
  31.             z = z + 1
  32.         Next
  33.         
  34.         j = j + 1
  35.         
  36.         For i = n To 1 Step -1
  37.             Cells(i + y + 1, j + y).Value = z
  38.             z = z + 1
  39.         Next
  40.         
  41.         i = i + 1
  42.         y = y + 1
  43.         n = n - 2
  44.         
  45.     Loop
  46.    
  47.    
  48.     If n = 0 Then Cells(i + y, j + y).Value = z
  49.    
  50.    
  51.    
  52.    
  53.    
  54. End Sub
复制代码

点评

非常棒  发表于 5 天前

评分

参与人数 1登攀 +2 收起 理由
开心妙妙 + 2 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2017-12-5 21:34:53 | 显示全部楼层
  1. Option Explicit

  2. Sub 乘法口诀表()
  3. Dim i As Long, j As Long, k As String
  4. For i = 1 To 9
  5.     For j = 1 To i
  6.         k = i * j
  7.         Cells(i, j) = j & "*" & i & "=" & k
  8.     Next
  9. Next
  10. End Sub

  11. Sub 出货练习()
  12.     Dim i As Long, 次数 As Long, J As Long, 总数量 As Long
  13.         For J = 2 To 6
  14.         次数 = 0
  15.         总数量 = 0
  16.             For i = 2 To 37
  17.                 If Cells(i, "A") = Cells(J, "j") Then
  18.                 次数 = 次数 + 1
  19.                 总数量 = 总数量 + Cells(i, "C")
  20.                 Cells(J, "K") = Cells(i, "E") + Cells(J, "K")
  21.                 Cells(J, "L") = Cells(J, "K") / 次数
  22.                 Cells(J, "M") = Cells(J, "K") / 总数量
  23.             
  24.                 End If
  25.             Next
  26.         Next
  27.         
  28. End Sub

复制代码

点评

作业1,思路很棒,作业2结果正确,建议累加的数定义变量存放,最后赋值到单元格中  发表于 5 天前
回复 支持 反对

使用道具 举报

发表于 2017-12-5 22:04:36 | 显示全部楼层

  1. Sub 宏3()
  2. Dim i#, j#, k#, sumv#, sumw#
  3. For k = 2 To 6
  4.     For j = 2 To 37
  5.             If Range("a" & j) = Range("j" & k) Then
  6.             sumv = sumv + Range("e" & j)
  7.             sumw = sumw + Range("c" & j)
  8.             i = i + 1
  9.             End If
  10.             
  11.     Next
  12.     Range("k" & k) = sumv
  13.     Range("l" & k) = sumv / i
  14.     Range("m" & k) = sumv / sumw
  15.    
  16.    
  17.     i = 0
  18.     sumv = 0
  19.     sumw = 0
  20. Next
  21. End Sub
复制代码

点评

思路很棒,赞  发表于 5 天前
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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