如何用条件对单元格进行着色

时间:2016-11-16 14:44:57

标签: excel vba excel-vba excel-2010

我在excel中有数据如下

  A   B     C     D
sam  9.8    sam   1
kev  0.1    kev   0.1
ashl 2      ashl  2
kris 5.5    kris  3

我尝试着色代码B,D如果例如:A1 = C1且B1 = D1则颜色B1,D1绿色否则橙色。我尝试下面的公式得到0或1依赖于真或假E列。如何在VBA中继续使用颜色代码,因为我的范围将动态变化

=IF(AND(A1=D1,B1=E1),0,1)

2 个答案:

答案 0 :(得分:0)

按Alt + F11。这会将您带到您想要放置VBA代码的位置。按插入,然后插入模块。打开模块。

输入:

Option Explicit 'not necessary but good practice to make sure you define all variables

Public Sub highlightCells()

    Dim i As Long
    Dim sht As Worksheet
    Set sht = ThisWorkbook.Worksheets("Sheet1")
    Dim lastrow As Long

    'finds your last row, helps keep it dynamic
    lastrow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row

    For i = 1 To lastrow
        If (Cells(i, 1).Value = Cells(i, 3).Value) And (Cells(i, 2).Value = Cells(i, 4).Value) Then
            Cells(i, 2).Interior.Color = RGB(178, 255, 102) 'green
            Cells(i, 4).Interior.Color = RGB(178, 255, 102)
        Else
            Cells(i, 2).Interior.Color = RGB(255, 178, 102) 'orange
            Cells(i, 4).Interior.Color = RGB(255, 178, 102)
        End If
    Next i

End Sub

然后,当你的光标在" Public Sub"之间的任何地方。和"结束子"按F5。这将运行代码,以便您可以确保它是您正在寻找的。接下来,我将解释如何在工作表上创建一个按钮......

转到您的Excel电子表格。在Developer选项卡中,转到,在Active X下单击CommandButton。在工作表上的任何位置绘制CommandButton。双击刚绘制的按钮。在自动显示的代码中,键入

Module1.highlightCells

返回Excel工作表,在“开发人员”选项卡中,单击“"设计模式"”。这将启用/禁用设计模式,允许您使用现在应该工作的按钮。

另外,请记住,我跳过某些被认为是"良好做法"的事情,比如重命名对象等。如果您也需要帮助,请告诉我。还有一件事,我选择了我们自己使用的绿色和橙色类型,但如果您想要更改它,可以使用此处的RGB(红色,绿色,蓝色)代码:http://www.rapidtables.com/web/color/RGB_Color.htm

答案 1 :(得分:0)

您可以使用常规条件公式本身执行此操作。执行以下步骤。

  1. 单击D,选择列D
  2. 然后单击B,选择B列。
  3. 确保当前单元格或默认值为B1
  4. 点击条件格式选项,然后选择"管理规则"
  5. 在条件格式规则管理窗口中,单击新建规则按钮
  6. 在新的格式设置规则窗口中。选择使用公式确定要格式化的单元格
  7. 在此公式为真的格式值中输入= OR($ D1<> $ B1,$ A1<> $ C1)编辑框
  8. 选择橙色,然后单击确定
  9. 使用= AND($ D1 = $ B1,$ A1 = $ C1)公式和绿色执行步骤5到8。
  10. 一旦确定将被视为相对细胞并且它将适用于所有细胞,步骤3至关重要。