我只是想遍历一个(大)范围并用给定的替换值替换某些值(如果它们高于给定的最大值或低于给定的最小值......还有一个特定字符)。
我的第一个想法是简单地遍历每个单元格并在必要时检查/替换。我感觉这个过程会非常慢,我很好奇是否有更好的方法来完成这个任务。
每当我在 VBA 中编写执行类似操作的代码时,我都会看到每个单元格的值逐个单元格地更改,似乎必须有更好的方法。提前致谢。
编辑:
我什至还没有编写这个实现,因为我知道结果会是什么,如果可能的话我宁愿做一些不同的事情,但这就是它的样子
For something
If(Range.Value == condition)
Range.Value = replacement_value
Range = Range.Offset(a, b)
End For
最佳答案
在单独的列中创建公式,然后特殊复制/粘贴
,仅值
。
= if(A2 > givenvalue; replace; if(A2< anothergivenvalue; anotherreplace; if (A2 = "particularcharacterortext"; replaceonemore; A2)))
将公式放入空列的空单元格中,将其拖动或复制/粘贴到整个列。之后,如果新值正常,则仅将值复制/粘贴
到原始位置。
关于vba - 在一定范围内有条件地更改值的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17069586/