|
本帖最后由 Runnerchin 于 2012-2-7 11:15 编辑
range("a1:c4") 应用了条件格式的色阶,请问我怎么才能取得某个单元格( 比如 a2 )的颜色呢?
我试过 range("a2").interior.Color ,发现色阶并不是修改了单元格的填充色
试过 range("a2").FormatConditions(1).interior.color,它提示对象不支持该属性或方法。
想来想去实在想不到有什么其它的办法了。
PS:还想请教一下大家,隐藏单元格中的数值,除了将文字前景色与背景色改成一样,或者用 ;;; 之外,还有什么别的招吗?
不好意思,我说得不清楚。我用的office 2k7
我现在想达到一种效果:某一个区域,我用了条件格式里的色阶进行处理,现在想隐藏单元格的文字。
方法一就是大家都知道的 ;;;
方法二,我遍历了每个单元格,把文字的前景色设为单元格的背景色
方法三,为每个单元格 load一个label,再把label的大小,位置设为和单元格一样,完全遮盖住,然后把label的backcolor设为单元格的颜色。
一二都没问题,第三种方法里,我卡在了最后一步,给label设置颜色:我想取单元格的背景颜色,但是取出来后才发现单元格的背景色并不是色阶生成的颜色。我现在想知道的就是如何去取得每个单元格由色阶生成的这个颜色。
我试过 formatconditions(x).interior.color,没有这个属性。或者是我的用法有问题?
以下是最终解决方法……看帖看全了撒
用英文谷歌搜了好多论坛,在某篇帖子里提到:把excel单元格复制到word,再从word粘回excel就能得到一个以该色阶颜色作为背景色的单元格。
受了启发,做了点小改动:把整个区域粘到word里,直接遍历word表格里的每个单元格,把颜色直接赋回对应的excel单元格,跳过复制回excel的步骤
Sub cclr()
Dim wdap As Word.Application
Set wdap = New Word.Application
Sheet2.UsedRange.Copy
With wdap
.DisplayAlerts = wdAlertsNone
.Visible = True
.Documents.Add.Content.Paste
End With
For i = 1 To wdap.ActiveDocument.Tables(1).Rows.Count
For j = 1 To wdap.ActiveDocument.Tables(1).Columns.Count
Sheet2.Cells(i, j).Font.Color = wdap.ActiveDocument.Tables(1).Cell(i, j).Shading.BackgroundPatternColor
Next j
Next i
wdap.ActiveWindow.Close wdDoNotSaveChanges
wdap.Quit
End Sub
|
|