Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 7798|回复: 31

[颜色]专题周之倡议书暨颜色扫盲贴

[复制链接]
发表于 2010-4-14 14:29 | 显示全部楼层 |阅读模式

1、历史背景

近几日俺的恩师兼EP教务主任溦兰向俺提起EP要办专题周的事情,俺立马拍手附和举双脚赞成,猜想那必定是一个如世博般风风火火轰轰烈烈熙熙攘攘热热闹闹的盛会,怎奈几天下来,却只发现如中超赛般寻寻觅觅冷冷清清凄凄惨惨戚戚。

俺百思不得其解,师傅也大有抱怨极为不满颇具微词,责问道:小乐啊,你这是咋搞的啊?党和国家及EP与兰版把这么大的任务交给你,你咋就弄成这样呢?照这人气,专题周还要不要办了?你真是辜负了我对你的委托,辜负了兰版对你的信任,辜负了EP对你的培养,辜负了党和国家对你的期待啊!她还给我定了三大罪状:宣传不力,引导无方,参与不够。

         我真是哑巴吃黄连有苦说不出百口莫辩跳进黄河洗不清。辩说道:师傅啊,其实我也尽力啦,怎奈我即不如兰版那般粉丝众多一呼百应,也不如兰主任你这般倾国倾城秀色可餐。这关于“色”的专题周,我真是不好办啊?想我等皆非好“色”之徒,以“色”会友,这不成了“色友”了吗?前一段时间两会的时候,还有个政协委员倡议将扫黄打非改成扫色打非呢。我这不是顶风作案冒天下之大不韪吗?

         师傅却道:小乐啊,你这坏小子整天脑袋瓜里面都想写什么乱七八糟杂七杂八的东西啊。此色非彼色。Excel也有很“色”的一面喔。当你了解了它的五光十色之后,你才会真正的发现它才是秀色可餐呢。

         我这才茅塞顿开:哦!原来excel不仅很好很强大,还可以很黄很暴力啊!师傅你放心,我一定积极宣传,加强引导,努力参与,不负你的委托,不负兰版对我的信任,不负EP对我的培养,不负党和国家对我的期待。努力将众多E友变成好“色”之人。

[此贴子已经被作者于2010-4-14 14:35:24编辑过]
 楼主| 发表于 2010-4-14 14:30 | 显示全部楼层

2、翻出你的箱底

我们每个人都有一个属于自己的箱子,而压在箱底的,可能是初恋情人的相片,可能是泛黄发旧的家书,也可能一段只属于自己的珍贵回忆。这些东西,时间旧了,就得拿出来晒晒太阳吹吹风,回忆回味回想一番。这样才能让它更好的保存。

         EP,我们每个人也有一个属于自己的箱子,里面装的,有我们每天从EP辛辛苦苦流血流汗挣来的金币,也有我们每天收集收藏收刮来的知识和学问。有的人箱子很大,比如EP财政部,箱子大得里面的东西用200/箱的货运宝箱来运装,也得好几年才能运完;有的人的箱子很深,比如兰版,箱子深得里面的东西我一辈子也没办法看得清摸得透学得完。

但是,我们还是每天怀着向EP财政部进军向兰版学习的热情,继续的收藏收集收刮东西,充实着自己的箱子。

         可是时间久了,我们的箱子说不定也就乱了。里面的金币啊,帖子啊,收藏啊,荣誉啊,都不知道哪个被压在箱底了。这时,我们就需要去整理整理,翻出自己箱底的东西,拿出来晒晒,顺便让大伙也瞅瞅我们的收藏。万一指不定被谁挖掘一下,说不定不需炒作也能做个凤姐第二芙蓉第二贾君鹏第二呢。

         想当年刘谦小生和韩寒大师对骂的时候,曾经意味深长的说:“我很乐意和你切磋交流,但是,也得请您先倒空您的杯子才行。”现在,您能否翻出您的箱底,和我们切磋交流呢?

[此贴子已经被作者于2010-4-14 14:36:28编辑过]
回复

使用道具 举报

 楼主| 发表于 2010-4-14 14:30 | 显示全部楼层

3、前言

写了这么多,有童鞋不乐意了,说小乐你拐弯抹角海空天空胡吹乱侃的讲了这么多,并且长篇累牍乱用排比乱用成语,还一篇文章写这么多段,你这是干啥呢?也不见你翻出点什么东西给大家瞅瞅。

         我立即感到比窦娥还冤,说这位童鞋你有所不知,我这胡吹乱侃的本事可是师从古龙,一句话儿反复说,不仅可以气势磅礴还能增加稿酬呢。至于乱用成语乱用排比长篇累牍,这个是从小语文老师英年早逝的缘故,不过这你也别小看,当年我的文章也是经常被老师板书呢,大家通过练习我的文章从此以后就没再错过改错题。不过其实为什么我要写这么多废话还要一段废话分几段说的最重要的原因是:嘘!小声的告诉你,这是因为我在效法古龙赚稿费呢。你可能还不知道吧,黄晓明说了,写13个帖子就有50个金币,我可是算了一算,哇塞,基本上相当与一个帖子就是4BB了,这可是比抢楼来的快多了。不过大家也低调点,不要被黄晓明抓到把柄了,不然他一招黯然销魂掌下来,非得打到你吐100个金币出来为止。

         绕的太多了,自己也有点晕了。好了,废话不多说了,率先亮出我的箱底看看,各位童鞋也准备好你们的箱子,翻出自己的箱底,有钱的捧个钱场,有人的捧个人场,有钱又有人的多捧几个场。

偶的箱子太浅,仅够扫盲专用。高手路过也请扔点东西进去。

[此贴子已经被作者于2010-4-14 14:38:55编辑过]
回复

使用道具 举报

 楼主| 发表于 2010-4-14 14:30 | 显示全部楼层

4、扫盲贴

师傅说过,
        excel
很色,并且一代比一代更色。我们常用的excel2003支持56色的显示,到exce2007的时候,已经支持全彩色了。

         那何为56色,何为全彩色呢?按照我的理解,56色是说excel2003只能同时显示56种颜色,而excel2007可以显示全部的颜色。

         我们来试验一下:

我们在excel2003vba编辑器的模块中写下这样的代码:

Sub test1()

For i = 1 To 255

Cells(i, 1).Interior.Color = RGB(i, 0, 0)

Next

End Sub

运行代码之后,我们可以明显的看到,从A1A255,被填充为了3种颜色。A1A64填充为黑色,A65A191填充为深红色,A192A255填充为红色。这三种颜色之间有很明显的分割间隔。

但是实际上,上面的代码的本意是将A1A255分别由黑色渐变为红色(即由RGB(0,0,0)渐变为RGB(255,0,0)

[此贴子已经被作者于2010-4-14 16:21:09编辑过]
回复

使用道具 举报

 楼主| 发表于 2010-4-14 14:31 | 显示全部楼层

我们可以再反过来测试下:

再写入这样一段代码:

Sub test2()

For i = 1 To 255

Cells(i, 2) = Cells(i, 1).Interior.Color

Next

End Sub

运行代码之后,B1:B64的值为0B65B191的值为128B192B255的值为255

这说明什么问题呢?

简单的讲,就是RGB(1,0,0)RGB(64,0,0)的值均被显示成了RGB(0,0,0).

                              RGB(65,0,0)RGB(191,0,0)的值均被显示成了RGB(128,0,0).

                              RGB(192,0,0)RGB(255,0,0)的值均被显示成了RGB(255,0,0).

[此贴子已经被作者于2010-4-14 14:50:13编辑过]
回复

使用道具 举报

 楼主| 发表于 2010-4-14 14:31 | 显示全部楼层

我们再来看看这段代码在excel2007中的运行情况。

我们运行test1代码后,可以看到,从A1A255,颜色均匀的从黑色渐变到红色。请注意:我这里用的是“渐变”。也就是说,并没有一个很明显的分隔点和跳跃点。

 

继续运行test2代码:

我们可以看到,从B1B255,其值分别为1255,也就是说,RGB(1,0,0)显示的就是真正的RGB(1,0,0)的颜色。

 


[此贴子已经被作者于2010-4-14 14:51:11编辑过]
回复

使用道具 举报

 楼主| 发表于 2010-4-14 14:31 | 显示全部楼层

喝口茶继续。顺便数数按照权责发生制应该拿到的4BB

有童鞋可能会问了,那么,在2003里面,我怎么样才能正常显示RGB(1,0,0)的颜色呢。

有一种方法,两种做法。

这一种方法就是更改2003的调色板。

而两种办法就是1、直接通过工具-选项-颜色菜单来更改。 2、通过VBA代码来更改

例如我们要显示出RGB值为(194,0,0)的颜色,应该怎么做呢?

方法一见下图:

其中从上至下,显示的颜色分别为RGB(128,0,0),RGB(194,0,0),RGB(255,0,0)

可以看到,RGB(194,0,0)已经可以正常显示了,并且与RGB(255,0,0)颜色之间还是存在较大的差别的。

 

方法二VBA法其实就是将方法一代码化。

下面的代码可以将调色板的颜色批量替换为RGB(0,0,0)RGB(255,0,0)的均匀的56种颜色。

Sub test3()

For i = 1 To 56

ActiveWorkbook.Colors(i) = RGB(Int(255 / 56 * i), 0, 0)

Next

End Sub

运行test3之后,再来运行一下上面的test1test2代码看看。

是不是发现A1A255已经近乎均匀的从黑色渐变为了红色呢。

 



[此贴子已经被作者于2010-4-14 15:11:41编辑过]
回复

使用道具 举报

 楼主| 发表于 2010-4-14 14:32 | 显示全部楼层

再休息一下,数数上面文字挣到的4BB

上面我一直是用RGB()来表示,有的童鞋可能会问了,RGB是个啥函数啊,咋在函数里面没有找到呢?

 RGB是指颜色原理里面的三原色红色(Red),绿色(green),蓝色(Blue),传说可以由这三种颜色混合组成自然界中的任何原色,VBARGB()函数是用来表示一个颜色值,其三个参数分别表示红色值,绿色值和蓝色值。至于混合的原理,还得去问下牛顿以及各位科学家们了。偶这里不再搅和。

至于为什么函数里面没有RGB函数呢,这个我也说不清楚,应该问问盖茨可能会有答案吧。

其实RGB只是颜色的一种表示方式,在写代码的过程中,我们可以有很多种颜色的写法。

第一种:直接写颜色的序列值。

Excel2003中可以同时显示的56中颜色,每个都有一个专门的序列值。

如默认状态下,1表示黑色,2表示白色,3表示红色等等

代码可以这样写,range(“A1”).interior.colorindex=1

这里利用到的是colorindex的属性

因为最多只有56种颜色,所以,如果需要引用事先没有定义index的颜色,则需要先定义一下调色板。

比如,需要显示RGB(154,65,98)的颜色。可以先将这个颜色加到调色板中,然后再正常显示。

代码如下:

Activeworkbook.colors(56)=RGB(154,65,98)

Range(“A1”).interior.colorindex=56

[此贴子已经被作者于2010-4-14 14:53:55编辑过]
回复

使用道具 举报

 楼主| 发表于 2010-4-14 14:32 | 显示全部楼层

第二种,直接引用颜色的名称。

Excel有定义一些颜色的常量,分别是8中基本的颜色:黑色vbblack,白色vbwhite,红色vbred,绿色vbgreen,蓝色vbblue,黄色vbyellow , 蓝紫色(vbcyan,也有叫蓝绿色,靛青色等等),粉红色(vbmagenta,也不知道是不是这么拼的,英文太差了),也有叫粉红色为品红色或洋红色的.

 

 

代码这样写:

Range(“A1”).interior.color=vbred

这种代码虽然直观,但是仅仅只有8中颜色,是难以满足我们的好色之心的。

 

 

第三种:

利用我们上面讲的RGB函数来写。这里就不再赘述。

Range(“A1”).interior.color=RGB(255,0,0)

 

 

第四种:

利用颜色的16进制代码来写。这种写法通常用语窗体和控件的颜色表示。

如下图:

 

窗体的背景色为红色,其代码为&H000000FF&

到底这个红色等于&H000000FF&是怎么算出来的呢?

我们稍作休息,马上回来。请锁定频道不要换台。


[此贴子已经被作者于2010-4-14 15:10:13编辑过]
回复

使用道具 举报

 楼主| 发表于 2010-4-14 14:32 | 显示全部楼层

不知不觉,广告时间也赚到了4BB

下面我们继续讲颜色16进制的算法。

我们上面讲过,颜色可以用RGB三色来表示,每种颜色的范围为0255,即最小的RGB(0,0,0)黑色,最大的为RGB(255,255,255)白色。

16进制的算法是满161位,跟我们日常用的十进制类似。但是从1015就分别用AF来表示,所以F代表的15,满F之后,就向前进一位。

所以大家可以很容易的算出,FF代表的是15*16+15=255

也就是说,000000FF的值就是等于255的。其前面的0都是无意义的0,类似与000010等于10一样。

因为仅仅用两个数位就可以表示1-255的值了,所以16进制的算法中,从右至左(从个位数起),前两个(即个位和十位)表示的就是红色值。类似与RGB函数中的Red参数。

同理,百位和千位即第三位和第四位表示的是绿色值。万位和十万位即第五位和第六位数表示的是蓝色值。

所以,大家也可以很容易的知道,0000FF00的值是等于RGB(0,255,0)的值的。

一般颜色用六位就可以表示完全了,但是vba中用了8位。基本上前两位都是无意义的0值。

而第一个字母H代表HEX 16进制的意思。

 

[此贴子已经被作者于2010-4-14 14:56:13编辑过]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-4 03:48 , Processed in 0.875632 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表