Excel单元格字体的颜色随机变化
1、打开Excel表格,在工作表标签“Sheet1”上面单击右键,选择“查看代码”打开Sheet1的VBA代码窗口。
2、在代码窗口里边输入以下代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim mycells
On 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的随机数
Next
Application.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的随机数
Next
Next
Application.ScreenUpdating = True '恢复工作表更新
End Sub
5、ColorIndex是默认调色板上面的颜色编号,颜色的编号是从1到56之间。
6、如果不想在选择单元格时变更其颜色,可以把“Private Sub Worksheet_SelectionChange(ByVal Target As Range)”改成“Sub ABC()”,以后就需要手动运行程序。