VB 代码:查询 Excel 工作表并汇总包含特定值的行
以下是用 VB 实现的代码,可以实现查询 Excel 整个工作表,每个工作表中 T 列包含'13NG' 或者'15NG' 的值,然后将整行汇总到最后一个表中:
Sub QueryExcel()
Dim wb As Workbook
Dim ws As Worksheet
Dim wsLast As Worksheet
Dim rng As Range
Dim cel As Range
Dim lastRow As Long
Dim i As Long
Dim j As Long
Dim k As Long
Set wb = ThisWorkbook
Set wsLast = wb.Sheets(wb.Sheets.Count)
k = 1
For Each ws In wb.Worksheets
If ws.Name <> wsLast.Name Then
lastRow = ws.Cells(Rows.Count, "T").End(xlUp).Row
Set rng = ws.Range("A2:T" & lastRow)
For Each cel In rng
If cel.Value Like "*13NG*" Or cel.Value Like "*15NG*" Then
wsLast.Cells(k, "A").Value = ws.Name
For i = 1 To 20
wsLast.Cells(k, i + 1).Value = cel.Offset(0, i - 1).Value
Next i
k = k + 1
End If
Next cel
End If
Next ws
End Sub
代码中,首先定义了一些变量,包括工作簿、工作表、范围、单元格、行数、计数器等。然后使用 For Each 循环遍历所有的工作表,如果工作表不是最后一个工作表,则获取 T 列的最后一行,并将范围设置为 A2 到 T 最后一行。接着遍历范围内的每个单元格,如果单元格的值包含'13NG' 或者'15NG',则将该行数据汇总到最后一个工作表中。具体做法是将工作表名称写入第一列,然后使用 For 循环获取该行所有单元格的值,并将其写入最后一个工作表的相应位置。最后,计数器加 1,继续查询下一个单元格。
原文地址: https://www.cveoy.top/t/topic/nvRk 著作权归作者所有。请勿转载和采集!