VBA遍历不同的工作表,并在满足条件的情况下将行粘贴到主工作表中

时间:2018-10-24 03:26:00

标签: vba loops conditional-formatting worksheet

我想为执行以下操作的命令按钮创建VBA代码: 1.循环浏览除主工作表(已售)以外的所有工作表 2.如果满足条件(收费),则复制行 3.将行粘贴到主工作表(已出售)

到目前为止,我已经有了代码,但是我的问题是,它循环遍历包括主工作表在内的所有工作表(即主工作表中的重复信息),并且如果我尝试编写If ws.name <>“ Sold”,则代码停止工作给消息框错误。请帮我修改代码。

    Private Sub CommandButton1_Click()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets

Dim i, LastRow

LastRow = ws.Range("A" & Rows.count).End(xlUp).Row
For i = 2 To LastRow
If ws.Cells(i, "M").Value = "Paid" Then
ws.Cells(i, "M").EntireRow.Copy Destination:=Sheets("Sold").Range("A" & Rows.count).End(xlUp).Offset(1)
End If
Next i
Next ws
End Sub

1 个答案:

答案 0 :(得分:1)

我不知道您将IF语句放在哪里,但是它必须以这种方式工作:

Dim ws As Worksheet
Dim i, LastRow

For Each ws In Worksheets
If ws.Name <> "Sold" Then
    LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row
    For i = 2 To LastRow
        If ws.Cells(i, "M").Value = "Paid" Then
         ws.Cells(i, "M").EntireRow.Copy Destination:=Sheets("Sold").Range("A" & Rows.Count).End(xlUp).Offset(1)
        End If
    Next i
End If

Next ws
相关问题