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工作?
我相信您使用的是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,然后使用它来设置相关单元格的字体亮度,完成后,只需删除临时表.