0

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

我有两张纸,Sheet1Sheet2
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
4

1 回答 1

0

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

  • 垂直的公司和城市
  • 水平的产品(如果不是太多)
  • 里面的值的计数或总和

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

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

当然,数据透视表可以进行排序、过滤、小计等。

于 2012-12-05T12:50:02.383 回答