2015-05-06 120 views
0

我试图找出一种基于条件复制和粘贴val的高效替代方法。例如,如果列b包含成本,我希望第二个选项卡包含b列中不存在成本的所有数据。根据条件复制和粘贴值的替代方法

目前我有片材( “SH2”)范围( “A1:k50000”)。值=片材( “SH1”)范围( “A1:k50000”)。值

,然后我删除sh2中的所有行(使用for选择循环),其中填充了成本。但是,使用大型数据集删除1000行可能是一个漫长的过程。

+0

为什么您使用VBA而不是VLookUp? – CrApHeR

+0

如果我要通过在第1列中添加ID来使用查找,那么不仅会非常漫长,因为有15列,但仍然需要删除列b中具有空白成本的行 – Krishn

回答

0

您可以使用Excel的内置过滤在复制之前删除空白。它看起来像这样:

sheets("sh1").range("a1:k50000").Select 
Selection.AutoFilter 
sheets("sh1").Range("$a$1:$k$50000").AutoFilter Field:=2, Criteria1:="=" 
sheets("sh1").Range("$a$1:$k$50000").Copy 
sheets("sh2").Range("$a$1").PasteSpecial 

Criteria1:=“=”是空白的表达式。 “字段:= 2”是第2列/ B以检查空白。这里的关键是复制命令只包含已过滤的单元格,因此您将只粘贴已过滤的数据。另外,如果Range中没有标题行(“$ a $ 1:$ k $ 50000”),则可能需要添加一个才能获得可靠的结果。