【问题标题】:Vba Excel How to edit cell values in particular columns without looping all Rows based on Cell Contents?Vba Excel如何编辑特定列中的单元格值而不循环基于单元格内容的所有行?
【发布时间】:2013-02-07 04:53:39
【问题描述】:

我有一个包含如图所示数据的电子表格。如果同一行中相应的 SOA 列的值为 1A,我想隐藏该行最后一列中单元格的值。我有数千行,所以我不想遍历所有行。有没有替代循环遍历所有行的替代方法?任何帮助将不胜感激。


【问题讨论】:

  • 那么,如果 SOA 列中的任何行是 1A,您是否要隐藏最后一列?您是否还想避免循环遍历行,因为您认为处理数千行太慢了?如果是这种情况,您可以将范围设置为一个变量并循环遍历该变量,因为这非常快。
  • 隐藏或使用空字符串设置特定的单元格值。现在我正在按照你所说的方式做,但我想避免循环:-(
  • 好的,所以我需要您澄清一下您当前的循环是循环通过范围内的单元格而不是通过变量(即`vData = Range("A1:E10").value)。我尝试了 200,000 行的范围,我花了 1 秒钟。
  • 是的,我明白了..谢谢:-)

标签: vba excel


【解决方案1】:

您不需要 VBA。将以下公式插入单元格F2并填写:

=IF(C2="1A","",E2)

您也可以使用Format as Table 执行此操作,通过值1A 过滤SOA,然后删除Exclusive 行的内容。

最后,如果必须使用 VBA,请使用类似于以下伪代码的程序逻辑:

For each cell in SOA
  If cell.value = "1A"
  Range("E" & cell.Row).Value = ""
Next cell

【讨论】:

    猜你喜欢
    • 2022-11-17
    • 1970-01-01
    • 2017-02-12
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多