font.TintAndShade无法更改文本的亮度

use*_*640 5 excel fonts vba text excel-vba brightness

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

Range("A7").Select
With Selection.Font
    .ThemeColor = xlThemeColorAccent2
    .TintAndShade = -1
End With
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此代码时,TintAndShade无法正常工作.单元格中文本的亮度不能由vba指定.有没有其他方法可以改变文字的亮度?或者我该如何TintAndShade工作?

Sid*_*out 8

我相信您使用的是Excel 2010.不幸的是,它是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
Run Code Online (Sandbox Code Playgroud)

ScreenShot:

运行此操作时,您将看到字体亮度的变化,如下面的屏幕截图所示.:)

在此输入图像描述

注意:

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

  • 什么@pnuts说. (2认同)