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

工具/原料
- 计算机
- Windows 7
- Excel 2010
方法/步骤
- 1
打开Excel表格后,点击【开发工具】、【Visual Basic】打开VBA编辑器,也可以使用键盘上面的【Alt+F11】组合键打开VBA编辑器。
- 2
在VBA编辑器的菜单栏上边点击【插入】、【模块】。
- 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
输入完程序后,点击工具栏上的“运行”图标运行程序,也可以直接按下键盘上面的【F5】键运行程序。
- 5
表格上面自动填充颜色完成。
- 6
VBA程序、思路解读:
(1)在进行单元格数值对比判断时,需要借助一个中间变量(如:v1)来存储上一个单元格的值,以便于与后面的值进行对比。同时,每执行一列时,需要对中间变量的值进行初始化,以免后续的判断出错。
(2)在不确定的RGB值所表示的颜色时,可以在Excel表格的工具栏点击“填充颜色”的下拉选项,选择“其他颜色”,之后点击【自定义】,在“颜色模式”里边选择“RGB”,再输入相应的数值即可看到新的颜色。
END
注意事项
- 个人经验,仅供参考。