VBA ,提取表中某行F为 Id、G为 Ig、H为 Is、I为 Ib的下一行数据,存入新的表格。
时间: 2024-03-27 09:34:58 浏览: 21
你可以使用以下的 VBA 代码来实现你的需求:
```vb
Sub ExtractData()
Dim srcSheet As Worksheet
Dim destSheet As Worksheet
Dim lastRow As Long
Dim i As Long
Dim idCol As Long
Dim igCol As Long
Dim isCol As Long
Dim ibCol As Long
Dim destRow As Long
'设置源表格和目标表格
Set srcSheet = ThisWorkbook.Worksheets("原始数据")
Set destSheet = ThisWorkbook.Worksheets("提取数据")
'查找列的索引
idCol = Application.Match("Id", srcSheet.Rows(1), 0)
igCol = Application.Match("Ig", srcSheet.Rows(1), 0)
isCol = Application.Match("Is", srcSheet.Rows(1), 0)
ibCol = Application.Match("Ib", srcSheet.Rows(1), 0)
'查找最后一行
lastRow = srcSheet.Cells(srcSheet.Rows.Count, idCol).End(xlUp).Row
'循环遍历每一行,查找符合条件的数据
destRow = 2 '从第二行开始,第一行是标题
For i = 2 To lastRow '从第二行开始,第一行是标题
If srcSheet.Cells(i, idCol).Value = "F" And _
srcSheet.Cells(i, igCol).Value = "G" And _
srcSheet.Cells(i, isCol).Value = "H" And _
srcSheet.Cells(i, ibCol).Value = "I" Then
'将符合条件的数据复制到目标表格
srcSheet.Cells(i + 1, 1).Resize(1, 4).Copy _
Destination:=destSheet.Cells(destRow, 1)
destRow = destRow + 1
End If
Next i
End Sub
```
在代码中,首先定义了源表格和目标表格的变量 `srcSheet` 和 `destSheet`,并且查找了 "Id"、"Ig"、"Is" 和 "Ib" 列的索引。然后,通过遍历源表格的每一行,查找符合条件的数据,并将其复制到目标表格中。最后,通过调整目标表格的行数来保证新的数据不会覆盖以前的数据。