VBA如何将J列值乘-1后存入I列(仅存数值)或原地修改
VBA实现数值批量乘-1的两种方案
一、将J列数值乘-1后存入I列(直接存数值,无公式)
有两种高效实现方式:
- 先写公式再转数值:先通过公式计算结果,再将单元格内容替换为计算后的数值
Range("I2:I9").Formula = "=J2*-1" Range("I2:I9").Value = Range("I2:I9").Value - 数组批量计算赋值:借助
Evaluate直接计算数组结果,一次性写入I列,全程不生成公式Dim rng As Range Set rng = Range("J2:J9") Range("I2:I9").Value = Evaluate(rng.Address & "*-1")
二、原地修改J列数值(直接乘-1)
如果不需要保留原J列数据,可直接原地修改:
- 逐个单元格循环:适合数据量较小的场景,逻辑直观
Dim cell As Range For Each cell In Range("J2:J9") cell.Value = cell.Value * -1 Next cell - 数组内存计算:先将数据读入数组处理,再写回单元格,处理大量数据时效率更高
Dim arr As Variant arr = Range("J2:J9").Value Dim i As Long For i = LBound(arr, 1) To UBound(arr, 1) arr(i, 1) = arr(i, 1) * -1 Next i Range("J2:J9").Value = arr
内容的提问来源于stack exchange,提问作者Al Lelopath
相关产品推荐
相关产品推荐

