以下是用 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,继续查询下一个单元格。

VB 代码:查询 Excel 工作表并汇总包含特定值的行

原文地址: https://www.cveoy.top/t/topic/nvRk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录