You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 19:29:52