有三个excel工作表,需要将工作表中G列含有报废字样的行汇总到一个表格,将工作表G列含有超领字样的行汇总到另外一个表格,如何使用VBA编程实现
时间: 2024-09-25 18:05:09 浏览: 35
在Excel中,你可以使用VBA (Visual Basic for Applications) 来自动化这个任务。以下是简单的步骤和代码示例,用于创建两个新的工作表并将满足条件的行分别汇总:
1. 打开Visual Basic编辑器:
- 按下 `Alt + F11` 键打开VBA编辑器。
2. 创建模块:
- 点击 "插入" 菜单 -> "模块",为你的宏操作创建一个新的模块。
3. 编写VBA代码:
```vba
Sub SumRowsBasedOnCondition()
Dim ws1 As Worksheet ' 报废数据的工作表
Dim ws2 As Worksheet ' 超领数据的工作表
Dim srcWs As Worksheet ' 需处理的原始工作表
Dim dstWs1 As Worksheet ' 总计报废的表
Dim dstWs2 As Worksheet ' 总计超领的表
Set srcWs = ThisWorkbook.Sheets("Sheet1") ' 更改为你源工作表的实际名称
Set dstWs1 = ThisWorkbook.Sheets.Add(After:=srcWs)
Set dstWs2 = ThisWorkbook.Sheets.Add(After:=dstWs1)
Set ws1 = ThisWorkbook.Sheets("报废记录") ' 报废数据的工作表名
Set ws2 = ThisWorkbook.Sheets("超领报告") ' 超领数据的工作表名
' 对于每列 (假设G列为需要检查的列)
For Each row In srcWs.Range("G:G")
If row.Value = "报废" Then
' 如果G列值为报废,汇总到第一个目标工作表
dstWs1.Cells(dstWs1.Cells.Count, 1).End(xlUp).Offset(1, 0) = row.Offset(0, 0).Value ' 复制行
ElseIf row.Value = "超领" Then
' 如果G列值为超领,汇总到第二个目标工作表
dstWs2.Cells(dstWs2.Cells.Count, 1).End(xlUp).Offset(1, 0) = row.Offset(0, 0).Value
End If
Next row
MsgBox "汇总完成!"
End Sub
```
4. 运行宏:
- 返回VBA编辑器,选择 "运行" 菜单 -> "运行全部" 或者直接按 `F5` 键运行 `SumRowsBasedOnCondition` 宏。
阅读全文