1、打开Excel工作表之后,按下【Alt+F11】组合键打开VBA编辑器。

3、在模块的代码框里边输入以下程序代码:Sub ColorChange()Dim i, j, k, x, rn, arr1On Error Resume Next &垆杪屑丝#39;忽略运行过程中可能出现的错误Set mysheet1 = ThisWorkbook.Worksheets("Sheet1") '定义工作表mysheet1.Range("JJ2:JJ9").Clear '清空单元格内容,临时借用,如有使用,则改成其他单元格范围arr1 = Array(vbBlack, vbRed, vbGreen, vbYellow, vbBlue, vbMagenta, vbCyan, vbWhite)'指定颜色集,颜色集里边的颜色值可以改成0-16777215(即:256*256*256-1)之间的数值j = 1 '初始值,从第二行开始x = 0 '初始值为0Do k = arr1(Int(Rnd * 8)) '随机选择指定颜色集里边的颜色值 i = Application.WorksheetFunction.CountIf(mysheet1.Range("JJ2:JJ9"), k) 'i,统计颜色值在JJ2:JJ9单元格区域里边出现是次数 For Each rn In mysheet1.Range("JJ2:JJ9") '循环JJ2:JJ9单元格区域里边的每一个单元格 If i = 0 And rn = "" Then '如果没有出现过且单元格为空白 rn.Value = k '将颜色值写入该单元格里边 j = j + 1 'j数值(行数)递增1 mysheet1.Cells(j, 1).Font.Color = k '单元格里边的字体颜色变更成随机指定范围的颜色 Exit For '退出For循环 End If Next x = x + 1 '中间变量值递增1 If j = 9 Or x = 200000 Then '如果字体颜色已经变更到第9行,或x条件满足 mysheet1.Range("JJ2:JJ9").Clear '清空单元格内容,恢复原样 Exit Do '退出Do循环 End IfLoopEnd Sub

