【发布时间】:2012-11-23 03:05:12
【问题描述】:
感谢到目前为止的 cmets,它帮助我更好/不同地提出了我的问题。
我有两张工作表,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
【问题讨论】:
-
您不能在 Sheet1 中的表格上放置一个过滤器吗?
-
@iDevlop 我刚刚添加了一些代码和一些解释。
-
@Xophmeister 我不确定这是否可能,因为这种过滤只是我对两张纸做的许多事情之一。我需要考虑一下这个。
-
我认为在开始编码之前,您需要更多地考虑如何构建解决方案。例如,您是要插入/删除行还是只显示/隐藏它们(您的问题不清楚)?每个人的代码都会有很大不同。想到其他问题:一家公司可以拥有三种产品吗?为什么
CompanyA; Amsterdam; Product1; 0行有两个实例? -
谢谢,是的,你是对的。我昨天在想,它可能不需要那么复杂。我有一个类似数据库的 Sheet1,我只想从那里“更正”行以进入 Sheet2。正确的意思是对于某些列具有特定值的所有行。我将重写我的问题并删除与我现在意识到的答案无关的隐藏代码。