【问题标题】:Using VBA to delete "" rows使用 VBA 删除“”行
【发布时间】:2015-09-08 20:53:54
【问题描述】:

我有一个巨大的宏。因为宏需要应用于 1 到 200,000 行的数据集,所以有很多步骤我使用 =IF 公式,其中一个输出是“”。例如:

=IF(B2="","",CONCATENATE(B2,C2)

这些公式随后会自动填充到工作表的底部。由于 "" 不是真正的空白,因此输出末尾的文件最终每个文件至少为 80 mb,而有些文件可能为 10kb。

如果我导出为 CSV,我可以再次修剪文件,将文件扩展名更改为 txt,在记事本中打开,并删除所有仅由逗号组成的行,然后将 txt 文件重新导入 Excel,但是这需要我手动更改扩展名和删除逗号,这非常耗时。

有没有人有任何技巧(例如在粘贴值后留下真正空白的“”的替代品,或者可以删除 A =“”的所有行的命令,不需要 16 小时运行、评估和删除154 万行中的每一行)?

【问题讨论】:

标签: vba excel


【解决方案1】:

这样的事情应该一次性完成:

Range("E2:E" & Range("A" & Rows.count).end(xlup).row).formula = "=IF(B2="""","""",CONCATENATE(B2,C2)"

我做了以下假设:

您想要 E 列中的公式,如果没有,请在此处更改:Range("E2:E"

A 列的数据一直到您想要公式的位置,如果没有,请在此处更改:& Range("A"

Excel 足够聪明,可以在将公式发布到某个范围时递增此公式,无需在填写一个单元格后填写。

【讨论】:

  • 只是为了回头,你是我的英雄。我标记为已回答,因为该理论对我来说是有意义的,但我只是开始尝试将其付诸实践。这正是我所需要的。我知道 Excel 足够聪明,可以做到这一点。我也知道我不是:)
猜你喜欢
  • 1970-01-01
  • 2023-02-02
  • 1970-01-01
  • 1970-01-01
  • 2020-03-22
  • 2019-03-09
  • 2013-10-18
  • 1970-01-01
相关资源
最近更新 更多