1、打开Excel表格,在工作表标签“Sheet1”上面单击右键,选择“查看代码”打开Sheet1的VBA代码窗口。
2、在代码窗口里边输入以下代码:Private Sub Worksheet_SelectionChange(ByVal Target As R锾攒揉敫ange)Dim mycellsOn Error Resume Next '忽略运行过程中可能出现的错误Application.ScreenUpdating = False '关闭工作表更新,提高运行速度Set mysheet1 = ThisWorkbook.Worksheets("Sheet1") '定义工作表For Each mycells In mysheet1.Range("A2:E100") '对A2:E100里面的每一个单元格循环mycells.Font.ColorIndex = Int(Rnd * 56 + 1) '改变字体颜色'ColorIndex的颜色范围是1-56'Int为取整函数,Rnd为大于等于0且小于1的随机数NextApplication.ScreenUpdating = True '恢复工作表更新End Sub
3、回到工作表界面,单元格变更选择时,单元格里边的字体颜色将会随机改变。
4、在程序里边,使用“For Each……In……Next”循环程序来对指定范围里边的坡庥汩赴每一个单元格进行字体颜色改变,亦可以使得程序变得简洁。当然,也可以改成以下程序,结果是一样的。Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim i, j As Integer '定义i,j的数据类型为整数On Error Resume Next '忽略运行过程中可能出现的错误Application.ScreenUpdating = False '关闭工作表更新,提高运行速度On Error Resume Next '忽略运行过程中可能出现的错误Set mysheet1 = ThisWorkbook.Worksheets("Sheet1") '定义工作表For i = 2 To 100 '从第二行到100行 For j = 1 To 4 '从第1列到第四列,每执行一行将会执行四列 mysheet1.Cells(i, j).Font.ColorIndex = Int(Rnd * 56 + 1) '改变字体颜色'ColorIndex的颜色范围是1-56'Int为取整函数,Rnd为大于等于0且小于1的随机数 NextNextApplication.ScreenUpdating = True '恢复工作表更新End Sub
5、ColorIndex是默认调色板上面的颜色编号,颜色的编号是从1到56之间。
6、如果不想在选择单元格时变更其颜色,可以把“Private Sub Worksheet_SelectionChange(ByVal Target As Range)”改成“Sub ABC()”,以后就需要手动运行程序。