标签:png 描述 菜单栏 条件 功能区 进一步 输出 功能 表达
有个朋友让帮忙看下excel数据怎么处理,初步一看有点复杂,难以下手。进一步分析、搜索,发现VBA可以很好地解决这个问题,总结记录一下。
问题描述:如下图,有N个sheet,每个sheet记录了一个公司的交易详细,需求:统计出来所有公司,每样产品的交易情况。
初步一看,这些杂乱数据处理起来很麻烦,首先是跨表格统计,然后是数据规律没有那么明显。自习分析是有规律的:
整体解决思路,建立新的sheet,加速为sum:
确定处理方案是VBA之后,学习VBA基本
Sub test1() ‘为单元格C1赋予单元格D6的值方式一 Range("C1") = Range("D6").Value ‘为单元格B1赋予单元格A1的值方式二 Cells(3, 2) = Cells(3, 2).Value End Sub
其中,Cells(i,j)中i指的是行数,j指的是列数,Cells(i,j)指的是第i行的第j列单元格。
Sub test2() Dim i As Integer ‘ for循环使用 For i = 1 To 10 ... Next ‘ while循环使用 While i < 10 ... Wend End Sub
Sub test3() Dim myWorksheet As Worksheet ‘遍历所有sheet For Each myWorksheet In Worksheets ‘... Next End Sub
Sub calc() ‘定义增量循环i Dim myWorksheet As Worksheet Dim i As Integer Dim j As Integer i = 1 ‘汇总表从第一行开始 Debug.Print "开始测试" For Each myWorksheet In Worksheets ‘遍历所有sheet Debug.Print myWorksheet.Name j = 9 Debug.Print j While myWorksheet.Cells(j, 2) <> "" ‘结束条件Bn为空 Sheets("calc").Cells(i, 1) = myWorksheet.Cells(4, 3) ‘第一列放名字 Sheets("calc").Cells(i, 2) = myWorksheet.Cells(j, 2) ‘第二列放型号 Sheets("calc").Cells(i, 3) = myWorksheet.Cells(j, 6) ‘第三列放数量 i = i + 1 ‘汇总表往下一行移动 j = j + 1 ‘B列往下搜索 Wend Next myWorksheet End Sub
右键任一sheet,选择查看代码。或者快捷键Alt+F11
文件——选项——自定义功能区,常用命令的主选项卡可以选中开发工具,打开菜单栏,可以直接看到Visual Basic和宏菜单
Debug.Print,支持变量、字符串等,打印内容输出在立即窗口,立即窗口打开方法:
视图——立即窗口。或者快捷键Ctrl+G
最终生成的数量列是文本,不能做加法统计,需要先转为数字
选中所有文本,左上角出现黄色感叹号,鼠标移动过去,选择转换为数字
https://files.cnblogs.com/files/quantumplan/vba%E5%AE%9E%E4%BE%8B.rar
标签:png 描述 菜单栏 条件 功能区 进一步 输出 功能 表达
原文地址:https://www.cnblogs.com/quantumplan/p/9095565.html