VBA使用IF Else判断时如何设置单元格货币格式与文本颜色
实现代码
以下是修改后覆盖所有需求的完整VBA代码:
Sub SplitUp() ' 关闭屏幕刷新提升运行速度 Application.ScreenUpdating = False For i = 8 To 200 If Cells(i, 2).Value = "supplier" Then Cells(i, 11) = Cells(i, 13) * Cells(i, 4) ' 设置对应K列单元格文本为红色 Cells(i, 11).Font.Color = vbRed ' 设置为人民币货币格式,如需其他币种可替换货币符号 Cells(i, 11).NumberFormat = "¥#,##0.00" ElseIf Cells(i, 2).Value = "manufacture" Then Cells(i, 10) = Cells(i, 13) * Cells(i, 4) End If Next i ' 在遍历范围下一行放置K列合计值 Cells(201, 11).Formula = "=SUM(K8:K200)" ' 合计值同步设置为货币格式 Cells(201, 11).NumberFormat = "¥#,##0.00" ' 可选:合计行左侧加标注说明 Cells(201, 12) = "K列合计" ' 恢复屏幕刷新 Application.ScreenUpdating = True End Sub
逻辑说明
- 匹配到
supplier写入K列数值后,新增两行代码分别实现字体标红、货币格式设置,可根据需求调整货币符号、小数位数 - 循环结束后在遍历范围的下一行(201行)写入K列求和公式,合计值也同步设置了统一的货币格式,如需调整合计位置直接修改行号参数即可
- 额外优化了原代码的嵌套If结构,增加屏幕刷新开关避免运行时界面卡顿
内容的提问来源于stack exchange,提问作者user14302065
相关产品推荐
相关产品推荐

