我选择一个文本并更改其颜色,它告诉我

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


但是,当我运行此代码时,TintAndShade无法工作。 vba无法分配单元格中文本的亮度。是否可以更改文本的亮度?或者如何使TintAndShade工作?

最佳答案

我相信您使用的是Excel2010。很遗憾,这是Excel 2010中的错误。不确定它是否已在Excel 2013中得到纠正。
这是另一种选择。创建一个新的工作簿并将此代码粘贴到模块中。
逻辑:.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

屏幕截图:
运行此命令时,您将看到字体亮度的变化,如下面的屏幕快照所示。 :)

注意:
对于实时场景,请创建一个临时表,并在任何单元格中将其设置为.Interior.TintAndShade,然后使用它来设置相关单元格的字体亮度,完成后,只需删除该临时表即可。

07-25 21:09