【问题标题】:Copy a Specific Row from one sheet to another based on few conditions根据几个条件将特定行从一张纸复制到另一张纸
【发布时间】:2017-05-19 12:50:58
【问题描述】:

我想根据我感兴趣的 4 列之一是否大于 0 来复制整行。我是 VBA 新手,尝试了以下代码,但它似乎不起作用。

Sub MyViewCopy()
    Set sh = Sheets("XyNewSheet")
    RowCount = 0
    lr2 = 0
    For Each rw In sh.Rows
        If (
       (Cells(rw.Row, 10).Value > 0) Or (Cells(rw.Row, 12).Value > 0) 
        Or 
       (Cells(rw.Row, 14).Value > 0) Or (Cells(rw.Row, 16).Value > 0) 
       Or 
       (Cells(rw.Row, 18).Value > 0)
       ) Then
       Rows(rw).Copy Destination:=Sheets("MyView").Range("A" & lr2 + 1)
       lr2 = Sheets("MyView").Cells(Rows.Count, "A").End(xlUp).Row

       RowCount = RowCount + 1
    End If
    Next rw
    MsgBox (RowCount)
End Sub

【问题讨论】:

  • 你明白你正在检查每一行直到工作表的底部......?
  • 我有一个工作表 XyNewSheet,如果列 J、L、N、P、R 的值大于 0,那么我想复制到新工作表“MyView”。这就是我打算做的。
  • 试着把sh.放在所有Cells(rw...前面和Rows(rw).copy前面

标签: vba excel loops


【解决方案1】:

尝试将检查的行缩减为 J、L、N、P 和 R 列中具有实际值的行。

Option Explicit

Sub MyViewCopy()
    Dim r As Long, rc As Long, mxr As Long

    With Worksheets("XyNewSheet")
        mxr = Application.Max(.Cells(.Rows.Count, "J").End(xlUp).Row, _
                              .Cells(.Rows.Count, "L").End(xlUp).Row, _
                              .Cells(.Rows.Count, "N").End(xlUp).Row, _
                              .Cells(.Rows.Count, "P").End(xlUp).Row, _
                              .Cells(.Rows.Count, "R").End(xlUp).Row)
        For r = 1 To mxr
            If .Cells(r, "J").Value2 > 0 Or .Cells(r, "L").Value2 > 0 Or _
               .Cells(r, "N").Value2 > 0 Or .Cells(r, "P").Value2 > 0 Or _
               .Cells(r, "R").Value2 > 0 Then
                .Rows(r).Copy Destination:=Worksheets("MyView").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
                rc = rc + 1
            End If
        Next r
    End With

    MsgBox (rc)
End Sub

您对 Or 语句的括号是不必要的。仅当您想将 And 和 Or 的组合组合在一起时才需要。

【讨论】:

  • 非常感谢。这对我有帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多