WPS 表格 VB 宏:自动清洗分类并汇总数据
在 WPS 表格中,可以使用 VB 编辑器来自动清洗分类并汇总数据到另一个表格中。以下是实现的步骤:
-
打开 WPS 表格,创建两个表格,一个用于原始数据,一个用于清洗分类汇总的结果。
-
在 WPS 表格中,按下 Alt + F11 键,打开 VB 编辑器。
-
在 VB 编辑器中,点击插入菜单,选择模块,然后在模块中编写 VB 代码。
-
编写 VB 代码来实现数据清洗分类并汇总的功能。以下是一个示例代码:
Sub CleanAndSummarizeData()
Dim sourceSheet As Worksheet
Dim resultSheet As Worksheet
Dim sourceRange As Range
Dim resultRange As Range
Dim i As Long
Dim lastRow As Long
' 设置原始数据表格和结果表格
Set sourceSheet = ThisWorkbook.Sheets('原始数据')
Set resultSheet = ThisWorkbook.Sheets('分类汇总结果')
' 获取原始数据表格的最后一行
lastRow = sourceSheet.Cells(sourceSheet.Rows.Count, "A").End(xlUp).Row
' 设置原始数据表格的范围
Set sourceRange = sourceSheet.Range("A2:C" & lastRow)
' 清除结果表格的内容
resultSheet.Cells.ClearContents
' 设置结果表格的初始行数
i = 2
' 循环遍历原始数据表格中的每一行
For Each cell In sourceRange.Columns(1).Cells
' 获取原始数据分类
category = cell.Value
' 获取原始数据值
value = cell.Offset(0, 1).Value
' 在结果表格中查找该分类是否已存在
Set resultRange = resultSheet.Columns(1).Find(category, LookIn:=xlValues, LookAt:=xlWhole)
' 如果分类已存在,则在对应分类的值上累加
If Not resultRange Is Nothing Then
resultSheet.Cells(resultRange.Row, 2).Value = resultSheet.Cells(resultRange.Row, 2).Value + value
Else
' 如果分类不存在,则在结果表格中新增一行,并填入分类和值
resultSheet.Cells(i, 1).Value = category
resultSheet.Cells(i, 2).Value = value
i = i + 1
End If
Next cell
End Sub
- 编写完代码后,按下 F5 键运行代码。
这样,代码将会自动清洗原始数据表格中的分类,并将分类汇总后的结果填入到结果表格中。请根据实际情况修改代码中的表格名称和数据范围。
原文地址: https://www.cveoy.top/t/topic/o4Uf 著作权归作者所有。请勿转载和采集!