如果第一列中的单元格等于某个值,如何复制一组行。
这是我在网上找到的代码,但似乎无法正常工作,因为我将表格上的数据格式化为表格。
Private Sub CommandButton1_Click()
a = Worksheets("inbd").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To a
If Worksheets("inbd").Cells(i, 3).Value = 76 Then
Worksheets("inbd").Rows(i).Copy
Worksheets("sheet2").Activate
b = Worksheets("sheet2").Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("sheet2").Cells(b + 1, 1).Select
ActiveSheet.Paste
Worksheets("sheet1").Activate
End If
Next
Application.CutCopyMode = False
ThisWorkbook.Worksheets("inbd").Cells(1, 1).Select
End Sub
“ inbd”表的外观示例:
答案 0 :(得分:0)
接下来,将过滤具有相关条件的A列并将已过滤的行复制到Sheet2中,因为我使用了A列至N列,因此您需要修改范围,也请牢记代码下面,我正在过滤A列以找到值76,而在原始代码中,您正在将C列过滤为代码Cells(i, 3).Value = 76
,其中3是列号:
Sub foo()
Dim ws As Worksheet: Set ws = Sheets("inbd")
Dim wsDestination As Worksheet: Set wsDestination = Sheets("Sheet2")
'declare and set your worksheet, amend as required
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
'get the last row with data on Column A
ws.Range("A1:N" & LastRow).AutoFilter Field:=1, Criteria1:="76"
'filter data on Column 1 (A), change the Field number from 1 to the column number you wish to filter
ws.Range("A2:N" & LastRow).SpecialCells(xlCellTypeVisible).Copy
'copy filtered results
DestinationRow = wsDestination.Cells(wsDestination.Rows.Count, "A").End(xlUp).Row + 1
'get the destination row
wsDestination.Range("A" & DestinationRow).PasteSpecial xlPasteAll
'paste into Sheet2
Application.CutCopyMode = False
'deselect the copied rows
ws.Range("A1:N" & LastRow).AutoFilter Field:=1
'remove filter
End Sub