06 办公常用代码

文章介绍了如何使用VBA宏来实现特定功能:一是通过自定义函数`redCount`计算工作簿内各表红色字体单元格的求和;二是定义`mySumProduct`函数实现按行计算单元格的乘积并相加;三是编写`replaceFormula`子程序将所有公式的值转换为实际数值。

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

需求1: 工作簿内各表单元格区域红色字体求和

过程化写法: Range自定义函数

Sub demo()
    Dim w As Worksheet 's和, w 表格, r 单元格, r1 子单元格
    
    For Each w In Worksheets
        
        w.Cells(30, 6) = redCount(w.UsedRange)
        w.Cells(30, 6).Font.Color = vbBlue
    Next w
    
End Sub
--------------------------------------------------------------------------------------------------' 
' 本函数接收一个Range类型变量作为参数
' 然后扫描其中每一个单元格,将红色数字汇总返回>>>>>>>>>>>>>>可以当做自定义公式
Function redCount(r As Range)
    Dim s As Long
    Dim r1 As Range
    
    '和
    For Each r1 In r
        If r1.Font.Color = vbRed Then
            s = s + r1.Value
        End If
    Next r1
        
    redCount = s
        
End Function

需求2: 按行求积再相加


Function mySumProduct(r As Range)
    Dim i&, j&, k&, s&
    s = 0 '求和
    
    b = r.Column + r.Columns.Count - 1
    Debug.Print b
    
    For i = r.Row To r.Row + r.Rows.Count - 1
    
        k = 1 '求积
        For j = r.Column To r.Column + r.Columns.Count - 1
            k = k * Cells(i, j)
        Next j
        
        s = s + k
    Next i
       
    
    mySumProduct = s
End Function

需求3: 公式转换为值

Sub replaceFormula()
    Dim w As Worksheet
    
    For Each w In Worksheets
        w.UsedRange.Value = w.UsedRange.Value
    Next w
    
End Sub

·········持续更新中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

pigerr杨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值