首页 > 解决方案 > 通过列中的多个条件将数据从一个工作表复制到另一个工作表

问题描述

我有一个包含数据的工作表,另一个包含该字段中的过滤词。我的代码在 SheetFilt 中的标准字 E2:E10 上将数据从工作表“数据”复制到工作表 2。现在它只适用于 E2 Cell 中的一个标准。如何使用范围 E2:E10 (或范围名称)

Sub Copy()
Dim i, LastRow
LastRow = Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row
Sheets("Sheet2").Cells.Clear
Worksheets("Data").Rows(1).Copy Destination:=Worksheets("Sheet2").Rows(1)
For i = 2 To LastRow
If InStr(Sheets("Data").Cells(i, "H"), Sheets("SheetFilt").Range("E2")) <> 0 Then
Sheets("Data").Cells(i, "A").EntireRow.Copy Destination:=Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1)
End If
Next i
End Sub

我想使用范围 E2:E10 而不是 E2,类似这样(但这以错误结束)

If InStr(Sheets("Data").Cells(i, "H"), Sheets("SheetFilt").Range("E2:E10")) <> 0

我怎么能意识到它?

标签: excel

解决方案


试试这个:

Sub Copy()

Dim i, j, LastRow as Long

LastRow = Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row

Sheets("Sheet2").Cells.Clear

Worksheets("Data").Rows(1).Value = Worksheets("Sheet2").Rows(1).Value

For i = 2 To LastRow
    For j = 2 to 10
        If InStr(Sheets("Data").Cells(i, 8), Sheets("SheetFilt").Cells(j, 5)) <> 0 Then
            Sheets("Sheet2").Cells(1, Rows.Count).End(xlUp).Offset(1).Value = _
                                      Sheets("Data").Cells(i, 1).EntireRow.Value = 
        End If
    Next j
Next i

End Sub

如果有任何错误,我只是想遵循您的“想法”,如果有问题请告诉我。

希望能帮助到你


推荐阅读