《excel2007和2010版本可以按单元格颜色》由会员分享,可在线阅读,更多相关《excel2007和2010版本可以按单元格颜色(6页珍藏版)》请在金锄头文库上搜索。
1、excel2007和2010版本可以按单元格颜色、字体颜色或图标进行选择与排序.111100 excel2003,无此功能,但是添加辅助列,用定义名称的方法得到对应的颜色号,然后对辅助列进行排序也能处理此类问题 举例: 颜色单元格在A列,字体标有颜色,D列单元格有底色:如下图1选中B2,插入-名称-定义,如下图2、3输入aa,下面输入公式 =get.cell(24,$a2),此法可得到字体色的序列号B2输入 =aa将公式向下复制到相应行.得到字体色的序列号将全表按B列排序即可. 若是想获得背景色序列号,将24改成63即可. 选中E2,插入-名称-定义,输入bb,下面输入公式 =get.cell
2、(63,D2),此法可得到单元格底色的序列号E2输入 =bb将公式向下复制到相应行.得到单元格底色的序列号将全表按E列排序即可.GET.CELL,EXCEL中最有意思的函数之一,它不能在单元格中直接引用,否则的话会说当前所用的函数在EXCEL中不可用.但是经常会在一些公式中看到它的身影,那么,GET.CELL函数的含义是什么?又是如何使用的呢? 首先看GET.CELL的意思:根据字意就是得到单元格信息的意思. GET.CELL的语法:GET.CELL(类型号,单元格或范围) 这个函数可以返回的信息多达66种,也就是说,在一个EXCEL的单元格中原来可以告诉我们66种信息,以前真的没有想到过.G
3、ET.CELL函数不能直接在单元格里引用,也就是说不能直接写在编辑栏的公式里.这个函数是写在名称里的.选择插入菜单下面的名称下面的定义选项,名称处写任意名称均可,在引用位置上写入“=GET.CELL(类型号,单元格或范围)”再点击添加.然后在需要的单元格里输入=刚刚这个函数的名称就可以了. 先看看GET.CELL函数中的类型号及代表的意思,然后再看实例 1 参照储存格的绝对地址 2 参照储存格的列号 3 参照储存格的栏号 4 类似 TYPE 函数 5 参照地址的内容 6 文字显示参照位址的公式 7 参照位址的格式,文字显示 8 文字显示参照位址的格式 9 传回储存格外框左方样式,数字显示 10
4、 传回储存格外框右方样式,数字显示 11 传回储存格外框方上样式,数字显示 12 传回储存格外框方下样式,数字显示Sub Macro1()Dim cell As Range For Each cell In Range($1:$1) If cell.Font.ColorIndex = 3 Then cell.Select MsgBox (今天是 & cell & _) cell.Select Selection.End(xlDown).Select Selection.Copy Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
5、 SkipBlanks:= _ False, Transpose:=False Application.CutCopyMode = False Selection.End(xlDown).Select Selection.End(xlDown).Select Selection.End(xlDown).Select Selection.End(xlDown).Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=
6、False Application.CutCopyMode = False End If Next cell ActiveWorkbook.Save ActiveWorkbook.CloseEnd Sub 简单描述一下.我的excel表的第一行是日期,我把日期设置了条件格式,当它等于当天日期时,颜色显示为红色.这个宏就是先在第一行找到颜色为红色的单元格,选中它,并弹出一个提示框“今天是*年*月*日 _”,提示框可加可不加,然后光标向下选中该列中的一个单元格(该单元格含有公式),并复制,粘贴为数值.然后继续向下,选择指定的单元格,同样复制,粘贴为数值.最后保存并退出.我的excel表的首行是日期
7、,我在单元格里设置了条件格式,当单元格的日期等于当前日期时,字体颜色显示为红色.我的前一个宏是先找到字体颜色为红色的单元格,然后在继续处理.可我发现,直接把单元格字体设置为红色,和在单元格条件格式里把字体设置为红色,两种效果不一样.也许是不同的红?深浅不一? 不管了,我这一个宏就是直接找是当前日期的单元格,ok! 宏是这样滴Sub chan()Dim cell As RangeFor Each cell In $1:$1If cell.Value = DateValue(Now() Thencell.SelectMsgBox (今天是 & cell & _)cell.SelectSelecti
8、on.End(xlDown).SelectSelection.CopySelection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _False, Transpose:=FalseApplication.CutCopyMode = FalseSelection.End(xlDown).SelectSelection.End(xlDown).SelectSelection.End(xlDown).SelectSelection.End(xlDown).SelectSelection.CopySelection.Pa
9、steSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseApplication.CutCopyMode = FalseSelection.End(xlDown).SelectSelection.End(xlDown).SelectSelection.End(xlDown).SelectSelection.End(xlDown).SelectSelection.CopySelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseApplication.CutCopyMode = FalseEnd IfNextActiveWorkbook.SaveActiveWorkbook.CloseEnd Sub6 / 6