需要VBA帮助将数据复制到工作表2中的一行,基于工作表1中的值,并从工作表1中删除重复数据

我在VBA代码方面相对缺乏经验,但有一个工作簿,我试图根据行中列出的项目的“状态”进行组织。

我在“M”列中有一个下拉框,允许用户select“HOLD”或“RELEASED”…根据此值,需要将订单项复制并粘贴到表2中的同一行该值=“RELEASED”(行项目范围的示例是(“B7:N7”)(表格格式完全相同)。我有这个代码,但我需要从工作表中删除“RELEASED”行项目1复制并粘贴到工作表2后。

这是我有…(零件分段日志=表1 …释放零件日志=表2)

Public Sub CopyPasteRows() Sheets("Parts Staging Log").Select ' Find the last row of data FinalRow = Range("B828").End(xlUp).Row ' Loop through each row For x = 7 To FinalRow ' Decide to copy based on column M value "RELEASED" ThisValue = Range("M" & x).Value If ThisValue = "RELEASED" Then Range("B" & x & ":BM" & x).Copy Sheets("Released Parts Log").Select NextRow = Range("B828").End(xlUp).Row + 1 Range("B" & NextRow).Select ActiveSheet.Paste Sheets("Parts Staging Log").Select End If Next x End Sub 

如果任何人都可以帮我删除原本的条目,这将是美好的。 其他意见也被接受!

谢谢!

我承担这一点:删除循环(太慢),并更换自动filter

 Public Sub CopyPasteRows() Dim FinalRow As Long With Sheets("Parts Staging Log") ' Find the last row of data FinalRow = .Range("B828").End(xlUp).Row .Range("B6:BM" & FinalRow).AutoFilter .Range("B6:BM" & FinalRow).AutoFilter field:=12, Criteria1:="RELEASED" .Range("B7:BM" & FinalRow).SpecialCells(xlCellTypeVisible).Copy Sheets("Released Parts Log").Range("B828").End(xlUp).Offset(1) .Range("B7:BM" & FinalRow).SpecialCells(xlCellTypeVisible).EntireRow.Delete .Range("B6:BM" & FinalRow).AutoFilter End With End Sub