2015-05-06 40 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」),則可能需要添加一個才能獲得可靠的結果。