如何根据条件使用Excel VBA复制行

如何根据条件使用Excel VBA复制行,excel,vba,Excel,Vba,我想根据一列中的以下条件将行从一张图纸复制到另一张图纸: 如果一行在列中包含值“AB”,则将该行复制到工作表中,但如果下一行在同一列中具有相同的值,则忽略该行并继续 如果一行在列中包含值“NULL”,则将该行复制到工作表中-此处没有限制 我已经写了一些逻辑,但它不起作用-以下是相关的代码片段: If wks.Range("N" & CStr(LSearchRow)).Value = "NULL" Or Not _ wks.Range("N" & CStr(LSearchRow))

我想根据一列中的以下条件将行从一张图纸复制到另一张图纸:

  • 如果一行在列中包含值“AB”,则将该行复制到工作表中,但如果下一行在同一列中具有相同的值,则忽略该行并继续
  • 如果一行在列中包含值“NULL”,则将该行复制到工作表中-此处没有限制
  • 我已经写了一些逻辑,但它不起作用-以下是相关的代码片段:

    If wks.Range("N" & CStr(LSearchRow)).Value = "NULL" Or Not _
    wks.Range("N" & CStr(LSearchRow)).Value = optionCode Then
    
        'Select row in master to copy
        Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Select
    
        Selection.Copy
    
        'Paste row into new worksheet in next row
        wksCopyTo.Select
    
        wksCopyTo.Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow)).Select
    
        wksCopyTo.Paste
    
        optionCode = wks.Range("N" & CStr(LSearchRow)).Value
    
        'Move counter to next row
        LCopyToRow = LCopyToRow + 1
    
        'Remove blank rows
        wksCopyTo.Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    
        'Go back to Master Sheet to continue searching
        wks.Select
    End If
    

    有人能帮忙吗?

    这里有一个小个子,您可以将范围引用和复制工作表上的行传递到该子文件夹中,这样就可以了。如果您不知道如何将其合并,请稍微扩展一下代码,我将向您展示如何将其合并

    Sub copyrow(rng As Range, LCopyToRow As Long)
    
    If rng = vbNullString Then rng.EntireRow.Copy wksCopyTo.Cells(LCopyToRow, 1)
    
    If rng.Offset(1) <> rng Then rng.EntireRow.Copy wksCopyTo.Cells(LCopyToRow, 1)
    
    End Sub
    
    Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Copy wksCopyTo.Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow))