EXCEL批量替换公式数据变成真两位小数

当需要将Excel表格中所有含有公式的单元格统一设置为保留两位小数时,遇到批量操作的挑战。常规方法如拖拉公式和替换功能无法满足需求。为了解决这个问题,采用VBA编写宏代码进行处理。通过遍历选择的单元格,检查是否有公式,并用ROUND函数替换原有公式,确保数据一致性。在编写过程中要注意公式的正确性,避免出现错误导致计算不准确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原因

公司制作了一个表格,属于统计类表格,基本都是数值型的,通过单元格格式设置为两位小数后,发给财务,发现分数据和总数据核对不一致,至此产生了真两位小数的需求。
由于每个单元格的计算公式不一样,无法使用通用的拖拉来解决批量公式设置问题;
使用excel的替换功能也没用通配符,因此无法批量替换;

方案

不得已,搬出VBA,网上查询一番,最后写下如下代码

Sub 全部加上ROUND两位小数()
    Dim cel As Range
    For Each cel In Selection
     If cel.HasFormula Then
        Dim str As String
        str = Replace(cel.Formula, "=", "")
        If Left(str, 5) <> "ROUND" Then
            cel.Formula = "=ROUND(" + str + ",2)"
        End If
     End If
    Next cel
End Sub
  1. 通过cel.HasFormula判断是否有公式
  2. 通过Left(str, 5) <> "ROUND"判断是否是ROUND函数开头(排除重复替换问题)
  3. 之所以把str单独出来,纯属过程中好排查出问题的原因,可以合并到下下步,一步到位
  4. 没有排除其他文本型单元格的公式替换,所以选择的时候,只能选需要替换的单元格,不能Ctrl+A通选

注意

过程中卡了几分钟,原因居然是公式写错了,忘记加上,2两位小数设置
所以要首先保证公式的正确性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向兴东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值