根据多个条件将行从一个选项卡复制到另一个选项卡

Copying Rows from one tab to another, based on several criteria

我正在尝试将导入到文档中的选项卡中的行复制到另一个选项卡。

'Clears previous data from sheet
Sheets("60L Specific Data").Select
Cells.Range("A3:AC3000").ClearContents

'Pastes Title Block from Imported into 60L sheet
Sheets("Imported Data").Select
Rows("1:1").Select
Selection.Copy
Sheets("60L Specific Data").Select
Rows("3:3").Select
ActiveSheet.Paste

'Filters using several criteria
Dim i As Integer
Dim j As Integer
j = 4

For i = 2 To 2000

    If Cells(i, 28) <> "" Or Cells(i, 29) <> "" Or InStr(Cells(i, 6).Value, "K60") <> 0 Or InStr(Cells(i, 6).Value, "60T") Then

        Sheets("Imported Data").Select
        Rows(i).Select
        Selection.Copy
        Sheets("60L Specific Data").Select
        Rows(j).Select
        ActiveSheet.Paste
        j = j + 1
    End If
 Next i

这个问题一直困扰着我。我知道你想知道一些测试内容:

首先,前两个代码块按预期工作。
其次,如果您删除 if 语句,它就可以工作。 第三,当我在 if 语句中替换我知道必须对所有人都为真时,它做到了 运行,但是任何只会导致某些人被选中的语句根本不起作用。

我很困惑,为此花了很多时间,请帮忙!

总是safer/easier使用变量来引用你的工作表,并避免activate/select你可以:

Dim shtSrc As Worksheet, shtDest As Worksheet
Dim rw As Range
Dim i As Long, j As Long

Set shtSrc = Sheets("Imported Data")
Set shtDest = Sheets("60L Specific Data")

'Clears previous data from sheet
shtDest.Range("A3:AC3000").ClearContents

'Pastes Title Block from Imported into 60L sheet
shtSrc.Rows(1).Copy Destination:=shtDest.Cells(3, 1)

j = 4
'Filters using several criteria
For i = 2 To 2000
    Set rw = shtSrc.Rows(i)
    If rw.Cells(28) <> "" Or rw.Cells(29) <> "" Or _
        InStr(rw.Cells(6).Value, "K60") <> 0 Or _
        InStr(rw.Cells(6).Value, "60T") Then

        rw.Copy shtDest.Cells(j, 1)

        j = j + 1
    End If
 Next i