首页 > Office专区 > Excel教程 >

Excel字体随机成指定不重复的颜色

来源:互联网 2023-02-20 17:43:55 344

如下图所示,要把A2:A9里边的字体颜色随机改成指定范围内的颜色(黑色、红色、绿色、黄色、蓝色、紫红色、青色、白色)且不能重复,只能使用VBA程序来处理。下边就分享一下VBA程序处理的方法。zwn办公区 - 实用经验教程分享!

1Excel单元格字体的颜色随机变化zwn办公区 - 实用经验教程分享!

Excel字体随机成指定不重复的颜色zwn办公区 - 实用经验教程分享!

工具/原料

  • 计算机
  • Excel 2010

方法/步骤

  • 1

    打开Excel工作表之后,按下【Alt F11】组合键打开VBA编辑器。zwn办公区 - 实用经验教程分享!

    Excel字体随机成指定不重复的颜色zwn办公区 - 实用经验教程分享!

  • 2

    在VBA编辑器的菜单栏里边点击【插入】、【模块】。zwn办公区 - 实用经验教程分享!

    Excel字体随机成指定不重复的颜色zwn办公区 - 实用经验教程分享!

  • 3

    在模块的代码框里边输入以下程序代码:zwn办公区 - 实用经验教程分享!

    Sub ColorChange()zwn办公区 - 实用经验教程分享!

    Dim i, j, k, x, rn, arr1zwn办公区 - 实用经验教程分享!

    On Error Resume Next '忽略运行过程中可能出现的错误zwn办公区 - 实用经验教程分享!

    Set mysheet1 = ThisWorkbook.Worksheets("Sheet1") '定义工作表zwn办公区 - 实用经验教程分享!

    mysheet1.Range("JJ2:JJ9").Clear '清空单元格内容,临时借用,如有使用,则改成其他单元格范围zwn办公区 - 实用经验教程分享!

    zwn办公区 - 实用经验教程分享!

    arr1 = Array(vbBlack, vbRed, vbGreen, vbYellow, vbBlue, vbMagenta, vbCyan, vbWhite)zwn办公区 - 实用经验教程分享!

    '指定颜色集,颜色集里边的颜色值可以改成0-16777215(即:256*256*256-1)之间的数值zwn办公区 - 实用经验教程分享!

    zwn办公区 - 实用经验教程分享!

    j = 1 '初始值,从第二行开始zwn办公区 - 实用经验教程分享!

    x = 0 '初始值为0zwn办公区 - 实用经验教程分享!

    zwn办公区 - 实用经验教程分享!

    Dozwn办公区 - 实用经验教程分享!

    k = arr1(Int(Rnd * 8)) '随机选择指定颜色集里边的颜色值zwn办公区 - 实用经验教程分享!

    i = Application.WorksheetFunction.CountIf(mysheet1.Range("JJ2:JJ9"), k)zwn办公区 - 实用经验教程分享!

    'i,统计颜色值在JJ2:JJ9单元格区域里边出现是次数zwn办公区 - 实用经验教程分享!

    zwn办公区 - 实用经验教程分享!

    For Each rn In mysheet1.Range("JJ2:JJ9") '循环JJ2:JJ9单元格区域里边的每一个单元格zwn办公区 - 实用经验教程分享!

    If i = 0 And rn = "" Then '如果没有出现过且单元格为空白zwn办公区 - 实用经验教程分享!

    rn.Value = k '将颜色值写入该单元格里边zwn办公区 - 实用经验教程分享!

    j = j 1 'j数值(行数)递增1zwn办公区 - 实用经验教程分享!

    mysheet1.Cells(j, 1).Font.Color = k '单元格里边的字体颜色变更成随机指定范围的颜色zwn办公区 - 实用经验教程分享!

    Exit For '退出For循环zwn办公区 - 实用经验教程分享!

    End Ifzwn办公区 - 实用经验教程分享!

    Nextzwn办公区 - 实用经验教程分享!

    x = x 1 '中间变量值递增1zwn办公区 - 实用经验教程分享!

    If j = 9 Or x = 200000 Then '如果字体颜色已经变更到第9行,或x条件满足zwn办公区 - 实用经验教程分享!

    mysheet1.Range("JJ2:JJ9").Clear '清空单元格内容,恢复原样zwn办公区 - 实用经验教程分享!

    Exit Do '退出Do循环zwn办公区 - 实用经验教程分享!

    End Ifzwn办公区 - 实用经验教程分享!

    Loopzwn办公区 - 实用经验教程分享!

    zwn办公区 - 实用经验教程分享!

    End Subzwn办公区 - 实用经验教程分享!

    Excel字体随机成指定不重复的颜色zwn办公区 - 实用经验教程分享!

  • 4

    点击VBA工具栏里边的“运行”图标运行程序,每运行一次程序,A2:A9里边的字体颜色将会随机改变。zwn办公区 - 实用经验教程分享!

    Excel字体随机成指定不重复的颜色zwn办公区 - 实用经验教程分享!

    Excel字体随机成指定不重复的颜色zwn办公区 - 实用经验教程分享!

  • 4本页面未经许可获取自百度经验
  • 5

    VBA程序函数解读:zwn办公区 - 实用经验教程分享!

    (1)在数组函数Array里边,对应的顺序是从0开始的,如:arr1(0)对应的是Array里面的第一个(vbBlack)。zwn办公区 - 实用经验教程分享!

    (2)Int是向下取整函数,Rnd是大于等于0且小于1的随机数,Int(Rnd * 8)的最大值将不会达到8,数组里边不会越界。zwn办公区 - 实用经验教程分享!

    (3)使用CountIf来统计缓存的单元格区域里边同一数值的个数,再使用If函数进行判断,如:统计的个数为0且单元格为空白,则把值填到此单元格里边。zwn办公区 - 实用经验教程分享!

  • 6

    思路解读:zwn办公区 - 实用经验教程分享!

    (1)随机改变字体在指定范围内不重复的颜色时,可以借助空白的单元格来记录是哪些单元格的字体颜色已经改变,然后将不再对这些进行颜色更改。zwn办公区 - 实用经验教程分享!

    (2)使用循环来尝试求解时,应当避免死循环的出现,此时可以在程序里边加入一些条件来避免死循环,如:循环200000次之后还没能求解,则退出循环。zwn办公区 - 实用经验教程分享!

    Excel字体随机成指定不重复的颜色zwn办公区 - 实用经验教程分享!

  • 注意事项

    • 个人经验,仅供参考;不足之处,敬请谅解。

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!zwn办公区 - 实用经验教程分享!


    标签: excel软件VBA字体指定

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码