VBA按多个标准剪切和粘贴行

问题描述 投票:0回答:1

我正在尝试编写VBA代码以将一个工作表中的行粘贴/复制到新工作表,只要列H包含我指定的任何值。

当我只设置一个值时,我的当前代码有效,但我希望代码执行,只要我指定的任何值都在单元格中。请指教,谢谢。

Sub CutPastebyAM()

Dim sht1 As Worksheet, sht2 As Worksheet
Dim i As Long

Set sht1 = ThisWorkbook.Worksheets("Data")
Set sht2 = ThisWorkbook.Worksheets("Sheet1")

For i = 2 To sht1.Cells(sht1.Rows.Count, "H").End(xlUp).Row
    If sht1.Range("H" & i).Value = "Laine Sikula" Or "Kim Gotti" Then
        sht1.Range("A" & i).EntireRow.Cut sht2.Range("A" & sht2.Cells(sht2.Rows.Count, "H").End(xlUp).Row + 1)
    End If
Next i

End Sub
excel vba excel-vba
1个回答
0
投票

差不多了:

编辑 - 复制到不同的工作表

Sub CutPastebyAM()

    Dim sht1 As Worksheet
    Dim i As Long, v, SheetName

    Set sht1 = ThisWorkbook.Worksheets("Data")

    For i = 2 To sht1.Cells(sht1.Rows.Count, "H").End(xlUp).Row

        Select Case sht1.Range("H" & i).Value
            Case "Laine Sikula": SheetName = "Sheet1"
            Case "Kim Gotti": SheetName = "Sheet2"
            Case Else: SheetName = ""
        End Select

        If Len(SheetName) > 0 Then
            With Sheets(SheetName)
                sht1.Range("A" & i).EntireRow.Cut _
                   .Range("A" & .Cells(.Rows.Count, "H").End(xlUp).Row + 1)
            End With
        End If
    Next i

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.