曾有人问起,在如下图的表格里面,单元格里面的值与上一个单元格相同时填充的颜色为绿色(忽略单元格之间的空白单元格),否则填充为红色。手动填充就显得比较麻烦,想来想去,还是觉得使用VBA程序处理比较快捷。

工具/原料

  • 计算机
  • Windows 7
  • Excel 2010

方法/步骤

  1. 1

    打开Excel表格后,点击【开发工具】、【Visual Basic】打开VBA编辑器,也可以使用键盘上面的【Alt+F11】组合键打开VBA编辑器。

  2. 2

    在VBA编辑器的菜单栏上边点击【插入】、【模块】。

  3. 3

    在“模块”的代码框里边输入以下VBA程序代码:

    Sub ColorChange()

    Dim v1, v2, ro, co

    On Error Resume Next  '忽略运行过程中可能出现的错误

    Set mysheet1 = ThisWorkbook.Worksheets("Sheet1")  '定义工作表

    For co = 1 To 20      '从第1列到20列

      v1 = ""             '每执行一列,则初始化一次v1、v2的值(置为空值)

      v2 = ""

      For ro = 1 To 1000  '从第一行到1000行

       If mysheet1.Cells(ro, co) <> "" Then  '如果单元格不是空白,则

        v1 = v2     '把v2的值赋给v1

        v2 = mysheet1.Cells(ro, co)   '把单元格的值赋给v2

        If v1 <> "" And v1 = v2 Then  '如果v1不是空白且v1=v2,则

         mysheet1.Cells(ro, co).Interior.Color = RGB(0, 255, 0)  '填充的颜色为绿色

        End If

        If v1 <> "" And v1 <> v2 Then  '如果v1不是空白且v1<>v2,则

         mysheet1.Cells(ro, co).Interior.Color = RGB(255, 0, 0)  '填充的颜色为红色

        End If

       End If

      Next

    Next

    End Sub

  4. 4

    输入完程序后,点击工具栏上的“运行”图标运行程序,也可以直接按下键盘上面的【F5】键运行程序。

  5. 5

    表格上面自动填充颜色完成。

  6. 6

    VBA程序、思路解读:

    (1)在进行单元格数值对比判断时,需要借助一个中间变量(如:v1)来存储上一个单元格的值,以便于与后面的值进行对比。同时,每执行一列时,需要对中间变量的值进行初始化,以免后续的判断出错。

    (2)在不确定的RGB值所表示的颜色时,可以在Excel表格的工具栏点击“填充颜色”的下拉选项,选择“其他颜色”,之后点击【自定义】,在“颜色模式”里边选择“RGB”,再输入相应的数值即可看到新的颜色。

    END

注意事项

  • 个人经验,仅供参考。
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。