【问题标题】:Alternative to Copy and Paste values based on criteria根据条件复制和粘贴值的替代方法
【发布时间】:2015-07-17 00:48:08
【问题描述】:

我正在尝试找出一种有效的替代方法来根据标准复制和粘贴 val。例如,如果 b 列包含成本,我希望第二个选项卡包含 b 列中不存在成本的所有数据。

目前我有 sheet("sh2").range("a1:k50000").value=sheets("sh1").range("a1:k50000").value

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

【问题讨论】:

  • 你为什么使用 VBA 而不是 VLookUp?
  • 如果我要通过在第一列中添加 ID 来使用查找,这不仅会非常冗长,因为有 15 列,而且仍然需要删除 b 列中具有空白成本的行

标签: vba excel


【解决方案1】:

您可以使用 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") 中没有标题行,您可能需要添加一个以获得可靠的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    • 2019-12-06
    • 2021-01-24
    • 1970-01-01
    • 2017-05-28
    • 2012-06-02
    • 1970-01-01
    相关资源
    最近更新 更多