ExcelVBA编程输出ColorIndex与对应颜色色谱

发布于:2024-12-23 ⋅ 阅读:(10) ⋅ 点赞:(0)

b8a22650066279f928da603d20944e50.png

==标题==

ExcelVBA编程输出ColorIndex与对应颜色色谱

==正文==

解决问题

编程输出ColorIndex与对应色谱

共56,打算分4纵列输出,标题是ColorIndex,Color,Name

1. 解释VBA中的ColorIndex属性

在VBA(Visual Basic for Applications)中,

Interior.ColorIndex

属性用于设置或返回单元格或范围内部的颜色索引。这个属性是Excel内置颜色集合的一个引用,通过指定一个数字来选择一个颜色。与直接使用RGB颜色值不同,

ColorIndex

提供了一种更简单的方式来引用一组预定义的颜色,它使用一个整数值来表示颜色,这个整数值对应于 Excel 内置的颜色索引。颜色索引的范围是 1 到 56,其中 1 表示黑色,2 表示白色,3 表示红色,依此类推。

2.收集Color的中文名:

来源于网络(按序号1-56)

黑色、白色、色、鲜绿色、蓝色、黄色、粉红色、青绿色、深红色、绿色、深蓝色、深黄色、装咽火、青色、灰-25%、灰-50%、海螺色、梅红色、象牙色、浅青绿、深紫色、珊瑚红、海蓝色、冰蓝、深蓝色、粉红色、黄色、青绿色、紫罗兰、深红色、青色、蓝色、天蓝色、浅青绿、浅绿色、浅黄色、淡蓝色、玫瑰红、淡紫色、茶色、浅蓝色、水绿色、酸橙色、金色、浅橙色、色、蓝-灰、灰-40%、深青、海绿、深绿、色、色、梅红色、靛蓝、灰-80%

3.解决思路

考虑到输出界面大小,

3-1.把56分4纵列输出,

3-2.标题3列是Array("ColorIndex", "Name", "Color"),共需要4*3=12列,

3-3.从for i=1 to 56,从第2行起输出,每次要输出ColorIndex,Name, Color,三个数据,

3-4.每到56/4后,再从第2起开始输出

4.效果图

a57ba0266d19db54fd01b81766b93a80.png  

5.示例代码

通过多次测试,成功。其中有编程输出的方式可供大家学习

可供学习知识点

数据的循环中的标题输出,坐标输出,数组输出

'由于要多次输出,测试所以用一个清除Sub clear清除()Cells.ClearEnd Sub’用于输出ColorIndex与颜色对照表Sub CreateColorIndexAndColor()Dim rowN As IntegerDim colN As IntegerDim row_i As IntegerDim col_i As IntegerDim rng As RangeDim partCol As IntegerDim partRow As IntegerDim r As RangeDim Num As IntegerDim ColorName As StringDim ColorArr As VariantDim NameArr As VariantNameArr = Array("ColorIndex", "Name", "Color")ColorName = "黑色、白色、色、鲜绿色、蓝色、黄色、粉红色、青绿色、深红色、绿色、深蓝色、深黄色、装咽火、青色、灰-25%、灰-50%、海螺色、梅红色、象牙色、浅青绿、深紫色、珊瑚红、海蓝色、冰蓝、深蓝色、粉红色、黄色、青绿色、紫罗兰、深红色、青色、蓝色、天蓝色、浅青绿、浅绿色、浅黄色、淡蓝色、玫瑰红、淡紫色、茶色、浅蓝色、水绿色、酸橙色、金色、浅橙色、色、蓝-灰、灰-40%、深青、海绿、深绿、色、色、梅红色、靛蓝、灰-80%"Num = 56colN = 3rowN = 1row_i = 0col_i = 0partCol = 4partRow = Num / 4ColorArr = Split(ColorName, "、")With ActiveSheet    For Each r In .Range("A1").Resize(1, partCol * colN)     r.Value = NameArr((r.Column - 1) Mod colN)    Next    With .Range("A1").Resize(1, partCol * colN)        .Font.Bold = True    End With    For i = 1 To Num        Set rng = .Cells(row_i + rowN + 1, col_i + 1)        rng = i        rng.Offset(0, 1).Value = ColorArr(i - 1)        rng.Offset(0, 2).Interior.ColorIndex = i        row_i = row_i + 1        If i Mod partRow = 0 Then            row_i = 0            col_i = col_i + colN        End If        Set rng = Nothing    Next    With .UsedRange        .HorizontalAlignment = xlCenter        .VerticalAlignment = xlCenter        .ColumnWidth = 9.5        .RowHeight = 30        .Borders.LineStyle = 1    End WithEnd WithEnd Sub

6.相关知识链接

在VBA中,Interior.Color如何应用,举例说明

在VBA中,编程中的颜色的RGB

ExcelVBA实现单元格背景颜色与RGB值互转

在VBA中,Interior.ColorIndex属性及其应用,举例说明

==正文结束==

8243a4bd418af968f9b0626688581ce9.png

3ab3ab9940f726d9af01a0a897ba13be.png

==更多合集==

Excel VBA学习系列汇总20241205

===***===

关注

243c45d35d40bea80ed0d17d4172ef60.jpeg

转发
点赞 在看

网站公告

今日签到

点亮在社区的每一天
去签到