Excel:根据多个条件在工作表之间复制粘贴行

时间:2012-12-05 10:08:36

标签: excel vba excel-vba criteria

感谢您的评论到目前为止,它帮助我更好地/不同地制定了我的问题。

我有两张, Sheet1 Sheet2 Sheet1 包含~100,000行,包含5列, Sheet2 应包含 Sheet1 的子组,具体取决于 Sheet1 包含某些列中的某些值。

这是我到目前为止的代码。不知怎的,VBA没有给我任何错误,但代码也没有运行,这使得很难找到可能的解决方案。任何想法?

Sub CopyRows()
Dim r As Integer
Dim cell As Range
r = 2
For Each cell In Selection
    If Application.WorksheetFunction.IsNA(Sheets("Sheet1").Cells(r, 1)) = False Then
        If Sheets("Sheet1").Cells(r, 3) = "Product1" or "Product2" Then
            If Sheets("Sheet1").Cells(r, 5) = "2011" or "2012" Then
                If Sheets("Sheet1").Cells(r, 4) > 0 Then
                cell.EntireRow.Copy Destination:=activesheet.Rows(r)
                r = r + 1
                End If
            End If
        End If
    End If
Next cell
End Sub

1 个答案:

答案 0 :(得分:0)

对于此类合并,我的第一个赌注是数据透视表;在你的情况下

  • 公司&垂直城市
  • 水平产品(如果不是太多)
  • 计算内部的值或总和

最后加上一个过滤器来排除空键字段。

如果您排列sheet1以便第1行中只有一个标题行,则可以选择整个列(例如$ A:$ D)作为数据透视表输入范围,并且任何其他行将包含在数据透视表中刷新。

当然,Pivot表可以进行排序,过滤,小计等等。