白话Excel函数公式 Office易学宝微视频教程合集(Excel+Word+PPT)
笨办法学VBA(从入门到精通) 高效办公必会的Office实战技巧
财务总监的Excel私房课 网易云课堂-Excel数据透视表应用大全
Excel图表神技
12
返回列表 发新帖
楼主: zmnyu

【11126】练习5 水果公司销售统计

[复制链接]
发表于 2014-12-29 09:47:27 | 显示全部楼层
Sub tongjibiao()
    Dim mydata As Object
    Dim i As Long
    Dim j As Long
    Dim k As Long
    Dim sum As Double
    Dim row As Long
    Dim zone_tongji As Object   '数据定义
   
    Sheets("统计表").Select  '选择统计表当前工作表
   
    Set mydata = Range("a2:d2")   '定义mydate 数据区域

    Range("a3:d3") = Array("合计", "1月", "2月", "3月") '给指定单元格赋值
    Range("a2:d2") = Array("南部", "北部", "东部", "西部") '给指定单元格赋值
    Range("a4:a7").Value = Application.Transpose(mydata) 'mydate 区域数据转置存放在a4:a7
    Range("a2:d2").Clear  '清空a2:d2数据

    Set zone_tongji = Sheets("统计表").Range("b4:d7") '定义统计表数据区域

    row = Sheets("销售表").UsedRange.Rows.Count   '定义销售表计算区域
    For j = 2 To 4             '统计表列值
        For k = 4 To 7         '统计表行值
            For i = 4 To row    '销售表行值
                If Sheets("销售表").Range("a" & i).Value = Sheets("统计表").Range("a" & k).Value Then  '如果销售表行标题值=统计表行标题值
                    sum = sum + Sheets("销售表").Cells(i, j)   '数据相加sum
                    Sheets("统计表").Cells(k, j).Value = sum   '将sum值赋给对应的单元格
                End If


            Next
            sum = 0  'sum值清0
        Next
    Next

End Sub

天使之城水果公司销售统计-Nami_excel.zip

22.54 KB, 下载次数: 0

点评

从代码看,你对单元格对象的知识和循环知识的掌握还是相当扎实的。除知识掌握之外,还要学习灵活应用。 单元格循环3重嵌套就要考虑一下是否有更好的方法了。再进一步,无论选择性粘贴或合并计算,很容易想到。  发表于 2015-1-4 12:18

评分

参与人数 1登攀 +32 收起 理由
hehex + 32 很好,继续努力

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2014-12-29 11:05:18 | 显示全部楼层
  1. Sub 汇总()
  2. Dim i%, j%, k%  '定义变量
  3.   Sheets("统计表").Cells.Clear  '清空统计表
  4.   Sheets("统计表").Cells(2, 1) = "合计"  '定义行标内容
  5.     For k = 4 To 7
  6.         Sheets("统计表").Cells(k - 1, 1) = Cells(k, 1)
  7.         For i = 3 To UsedRange.Rows.Count   '定义变量i范围,到有效行号
  8.             For j = 2 To UsedRange.Columns.Count   '定义变量i范围,到有效列号
  9.                 Sheets("统计表").Cells(2, j) = Cells(3, j)  '列标内容
  10.                 If Cells(i, 1) = Cells(k, 1) Then
  11.                     Sheets("统计表").Cells(k - 1, j) = Cells(i, j) + Sheets("统计表").Cells(k - 1, j)    '取各项数据值
  12.                 End If
  13.             Next j  '循环j
  14.         Next i  '循环i
  15.     Next k   '循环k
  16. End Sub
复制代码

练习5-www.zhp.rar

22.44 KB, 下载次数: 0

点评

你的思路和楼上同学几乎一样,请参考楼上点评。  发表于 2015-1-4 12:19

评分

参与人数 1登攀 +32 收起 理由
hehex + 32 淡定

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2014-12-30 16:18:34 | 显示全部楼层
练习5-天使之城水果公司销售统计-angle6639.rar (22.78 KB, 下载次数: 3)

点评

你的变量定义的一塌糊涂,造成你的代码几乎不可释读。你放2月自己能弄明白a 是啥,b 是什么自己当时怎么想的?思路是如何的?使用find 方法,思路巧妙,基本功不差。要注意规矩,特别是要交流的代码,这样很没礼貌。  发表于 2015-1-4 12:24

评分

参与人数 1登攀 +27 收起 理由
hehex + 27 思路+7 ,变量-10

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2015-1-4 12:39:27 | 显示全部楼层
本帖最后由 hehex 于 2015-1-4 13:14 编辑

简单总结一下:
思路分析包括题目设计思路,俺的帖子里已经写明白了。
羊班的代码最完备,注释最清楚,而且几乎完全没有超出初级班的范畴(假装的不会用高级技能),可以作为参考。
小丽同学的代码很见功力,但是完全与我们课程无关,无论字典或者数组都超出了我们当前的范畴,会给0基础学员造成压力。不知道该同学跑来学什么的,起码要像羊班一样假装用初级的思路来解题嘛。
Sahara 同学的合并计算解决方案,非常简洁一针见血 ,我看完之后也有眼界一宽的感觉。概因胡说老师本人长时间使用2003,对合并计算这些新功能了解不够,造成了思路的局限性。从单一解法而言,Sarah 同学的解法当是翘楚。而且从宏代码修改的丝毫不带烟火气,这点彰显了深厚的功力 。如同西门吹雪的剑法,一剑封喉。缺点就是完全没有注释,也没有思路分享,初级同学很难从代码汲取到思想精华,高手还是高手,寂寞还是寂寞,不懂还是不懂,天书还是天书。
angel 同学的思路值得称赞,使用find 方法,无论是否这种场合最佳,其思路宽阔应该得到表扬。但是变量如此定义应该狠狠狠狠狠狠狠狠的批评,最基本的ABC 都没搞好,上面学的再多也白搭。俺带的班,这么定义变量直接0分。

几位老师的解决方案,俺就不予置评了。其他同学的解法各有各的小问题,俺都在点评中给予指出了,有的同学基本功尚需加强,有的同学是思路需要扩展。VBA 并不只是1+...+100 那样傻循环的。

总之,我们班同学基础不错,除了上面几位应该驱逐出班的大神之外,其他同学应该是可以通过学习有很多收获的。
回复 支持 反对

使用道具 举报

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

本版积分规则

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