font.TintAndShade不能改变文字的亮度

我select一个文本,并改变它的颜色,它告诉我这一点

Range("A7").Select With Selection.Font .ThemeColor = xlThemeColorAccent2 .TintAndShade = -1 End With 

但是当我运行这个代码时, TintAndShade无法工作。 单元格中文本的亮度不能由vba指定。 有没有其他方法可以改变文字的亮度? 或者我怎样才能使TintAndShade工作?

我相信你正在使用Excel 2010.不幸的是,它是Excel 2010中的一个错误。不知道它是否在Excel 2013中被纠正。

这是一个替代scheme。 创build一个新的工作簿,并将此代码粘贴到一个模块中。

逻辑.TintAndShade适用于单元格的.Interior ,因此我们将使用该单元格代替.TintAndShade单元格的字体。

代码

 Sub Sample() Dim ws As Worksheet Dim i As Long Set ws = ThisWorkbook.Sheets("Sheet1") With ws .Range("B1:B256").Value = "Blah Blah" For i = 1 To 256 .Range("A" & i).Interior.ThemeColor = xlThemeColorAccent2 .Range("A" & i).Interior.TintAndShade = (i * 2 - 256) / 256 .Range("B" & i).Font.Color = .Range("A" & i).Interior.Color Next i End With End Sub 

ScreenShot

当你运行这个,你会看到字体亮度的变化,如下面的截图所示。 🙂

在这里输入图像说明

注意

对于实时场景,创build一个临时表,并在任何单元格中设置.Interior.TintAndShade ,然后使用它来设置相关单元格的字体亮度,一旦完成,只需删除临时表。

另一个解决scheme是使用.color而不是.interior.TintSndShade 。 从excel中的主页选项卡和字体类别中查找所需的颜色和色调。 然后logging改变单元的字体颜色的macros到你想要的。 然后使用“更多的颜色选项”,并稍微向上或向下滑动较深/较浅的酒吧。 这会给你logging的excelmacros中的.color属性。

我还发现了另一个解决scheme,也许有点棘手…我创build了一个所需的字体颜色的单元格,但没有文本,并将此单元格复制到我需要的颜色。

 Dim texxt As String texxt = Range(N_Range).Value Range("R3").Copy 'this is my preset cell Range(N_Range).Select ActiveSheet.Paste Application.CutCopyMode = False ActiveCell.FormulaR1C1 = texxt 
Interesting Posts