0
我试图找出一种基于条件复制和粘贴val的高效替代方法。例如,如果列b包含成本,我希望第二个选项卡包含b列中不存在成本的所有数据。根据条件复制和粘贴值的替代方法
目前我有片材( “SH2”)范围( “A1:k50000”)。值=片材( “SH1”)范围( “A1:k50000”)。值
,然后我删除sh2中的所有行(使用for选择循环),其中填充了成本。但是,使用大型数据集删除1000行可能是一个漫长的过程。
我试图找出一种基于条件复制和粘贴val的高效替代方法。例如,如果列b包含成本,我希望第二个选项卡包含b列中不存在成本的所有数据。根据条件复制和粘贴值的替代方法
目前我有片材( “SH2”)范围( “A1:k50000”)。值=片材( “SH1”)范围( “A1:k50000”)。值
,然后我删除sh2中的所有行(使用for选择循环),其中填充了成本。但是,使用大型数据集删除1000行可能是一个漫长的过程。
您可以使用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”),则可能需要添加一个才能获得可靠的结果。
为什么您使用VBA而不是VLookUp? – CrApHeR
如果我要通过在第1列中添加ID来使用查找,那么不仅会非常漫长,因为有15列,但仍然需要删除列b中具有空白成本的行 – Krishn