使用 VBA 在 Excel 中设置条件格式

本教程将向您展示如何使用 VBA 代码在 Excel 中设置工作表的条件格式,以根据特定条件突出显示数据。

示例:

假设您有一个包含以下工作表的 Excel 文件:'总收入','回款收入','客房收入','餐饮收入','出租率','平均房价','间房收益','GOP额','gop率','客房gop率','餐饮gop率','净利润'。您想要设置条件格式,以根据以下条件突出显示数据:

  • 如果 T6>1 且 V6>0 且 Z6>0,则将 Q6 设置为绿色背景,并将 T6、V6、Z6 设置为绿色背景、蓝色字体加粗。
  • 如果 T6<1 且 V6<0 且 Z6<0,则将 Q6 设置为红色背景,并将 T6、V6、Z6 设置为黄色背景、红色字体加粗。

您希望将此条件格式应用于每个工作表的所有行,从第 6 行到第 60 行。

VBA 代码:

Sub SetColorAndFont()
    Dim ws As Worksheet
    Dim i As Integer
    
    For Each ws In Worksheets(Array('总收入', '回款收入', '客房收入', '餐饮收入', '出租率', '平均房价', '间房收益', 'GOP额', 'gop率', '客房gop率', '餐饮gop率', '净利润'))
        ' 清除所有条件格式
        ws.Cells.FormatConditions.Delete
        
        ' 循环判断每一行
        For i = 6 To 60
            If ws.Range('T' & i) > 1 And ws.Range('V' & i) > 0 And ws.Range('Z' & i) > 0 Then
                ' 设置绿色背景,蓝色字体加粗
                ws.Range('Q' & i).Interior.Color = RGB(0, 255, 0)
                ws.Range('T' & i & ':Z' & i).Interior.Color = RGB(0, 255, 0)
                ws.Range('T' & i & ':Z' & i).Font.Color = RGB(0, 0, 255)
                ws.Range('T' & i & ':Z' & i).Font.Bold = True
            ElseIf ws.Range('T' & i) < 1 And ws.Range('V' & i) < 0 And ws.Range('Z' & i) < 0 Then
                ' 设置红色背景,红色字体加粗,黄色字体加粗
                ws.Range('Q' & i).Interior.Color = RGB(255, 0, 0)
                ws.Range('T' & i & ':Z' & i).Interior.Color = RGB(255, 255, 0)
                ws.Range('T' & i & ':Z' & i).Font.Color = RGB(255, 0, 0)
                ws.Range('T' & i & ':Z' & i).Font.Bold = True
            End If
        Next i
    Next ws
End Sub

代码说明:

  1. Sub SetColorAndFont():定义一个名为 SetColorAndFont 的子程序。
  2. Dim ws As Worksheet:声明一个 Worksheet 类型的变量,用于存储当前工作表。
  3. Dim i As Integer:声明一个 Integer 类型的变量,用于存储当前行号。
  4. For Each ws In Worksheets(Array('总收入', '回款收入', '客房收入', '餐饮收入', '出租率', '平均房价', '间房收益', 'GOP额', 'gop率', '客房gop率', '餐饮gop率', '净利润')):循环遍历所有指定的工作表。
  5. ws.Cells.FormatConditions.Delete:清除所有工作表的条件格式。
  6. For i = 6 To 60:循环遍历第 6 行到第 60 行。
  7. If ws.Range('T' & i) > 1 And ws.Range('V' & i) > 0 And ws.Range('Z' & i) > 0 Then:判断条件是否成立,如果 T6>1 且 V6>0 且 Z6>0,则执行以下操作:
  8. ws.Range('Q' & i).Interior.Color = RGB(0, 255, 0):将 Q6 设置为绿色背景。
  9. ws.Range('T' & i & ':Z' & i).Interior.Color = RGB(0, 255, 0):将 T6、V6、Z6 设置为绿色背景。
  10. ws.Range('T' & i & ':Z' & i).Font.Color = RGB(0, 0, 255):将 T6、V6、Z6 设置为蓝色字体。
  11. ws.Range('T' & i & ':Z' & i).Font.Bold = True:将 T6、V6、Z6 设置为加粗字体。
  12. ElseIf ws.Range('T' & i) < 1 And ws.Range('V' & i) < 0 And ws.Range('Z' & i) < 0 Then:判断条件是否成立,如果 T6<1 且 V6<0 且 Z6<0,则执行以下操作:
  13. ws.Range('Q' & i).Interior.Color = RGB(255, 0, 0):将 Q6 设置为红色背景。
  14. ws.Range('T' & i & ':Z' & i).Interior.Color = RGB(255, 255, 0):将 T6、V6、Z6 设置为黄色背景。
  15. ws.Range('T' & i & ':Z' & i).Font.Color = RGB(255, 0, 0):将 T6、V6、Z6 设置为红色字体。
  16. ws.Range('T' & i & ':Z' & i).Font.Bold = True:将 T6、V6、Z6 设置为加粗字体。
  17. End Sub:结束子程序。

如何使用:

  1. 打开您的 Excel 文件。
  2. Alt + F11 打开 VBA 编辑器。
  3. 在 VBA 编辑器中,插入一个新的模块(Insert > Module)。
  4. 将上述代码粘贴到新的模块中。
  5. F5 运行代码。

现在,您将看到所有指定的工作表都已应用了条件格式,并且数据已根据条件进行了突出显示。

注意:

  • 您可以在代码中更改工作表名称、行号、条件和颜色。
  • 您也可以根据需要添加其他条件和格式设置。
  • 如果您需要在其他工作簿中使用此代码,请在代码的开头添加 Workbooks('文件名').Worksheets(Array('总收入', '回款收入', '客房收入', '餐饮收入', '出租率', '平均房价', '间房收益', 'GOP额', 'gop率', '客房gop率', '餐饮gop率', '净利润')) 来指定工作簿名称。
Excel VBA: 设置工作表条件格式以突出显示数据

原文地址: https://www.cveoy.top/t/topic/nyts 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录