Excel VBA Copy Sheet / Line

我有2个基于2个位置条件的主表。 我将这些数据从Excel工作簿导入到主工作表工作表中。 我认为如果能够扫描第一列(例如A)会更好,并且如果该行符合某个条件,则会将整行移动到当前数据正下方的相应主表。 如果满足条件B,则转到其他主表单。 然后,我可以使用删除Excel中的重复来过滤数据。 我目前的代码是下面,我相当新的VB自动化。 我可以使用什么样的代码来select和移动基于标准的行到2个独立的主工作表的任何想法?

Sub Copy_DataCDN() Sheets("CDNDataDump").Range("A2:AC10000").Copy _ Sheets("CDN").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) Sheets("CDN").Select 

正如你所build议的,这可以通过遍历条件列中的单元格来完成(在示例代码中是列A)。

以下是您要修改的示例代码。

 Sub MoveToSheets() Dim dataSource As Worksheet: Set dataSource = ThisWorkbook.Sheets(1) Dim dataTargetA As Worksheet: Set dataTargetA = ThisWorkbook.Sheets(2) Dim dataTargetB As Worksheet: Set dataTargetB = ThisWorkbook.Sheets(3) Dim dataSourceRange As Range: Set dataSourceRange = dataSource _ .Range("A1:A" & dataSource.Cells(dataSource.Rows.Count, "A").End(xlUp).Row) For Each Cell In dataSourceRange 'Test 1 - I'm checking if the cell value is a number as an example. If IsNumeric(Cell.Value) = True Then dataTargetA.Range("A" & Rows.Count).End(xlUp).Offset(1).EntireRow.Value _ = Cell.EntireRow.Value 'Test 2 - Checking if the cell value is "e". ElseIf Cell.Value = "e" Then dataTargetB.Range("A" & Rows.Count).End(xlUp).Offset(1).EntireRow.Value _ = Cell.EntireRow.Value End If Next End Sub 

For Each Cell In dataSourceRange循环中,您可以根据需要获取尽可能多的条件。 您也可以粘贴更多的工作表。