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

时间:2014-01-07 03:34:02

标签: excel excel-vba text fonts brightness vba

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

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

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

3 个答案:

答案 0 :(得分: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

<强>截图

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

enter image description here

注意

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

答案 1 :(得分:1)

另一种解决方案是使用if(isset($_GET['info'])){ $password = "mykey" $base64Encrypted = 'AwEEeG/CU0VHXVGvuRcm805DvvVQi32NPjmlQxoaniIL9ngCjNY1Su4jEb2IfCILBvhKIdjl1znysm6SMiFmRZi2St8wCcWCmnImdwAPLysB/g=='; $cryptor = new \RNCryptor\Decryptor(); $plaintext = $cryptor->decrypt($base64Encrypted, $password); echo $plaintext;//=> this code block return the original value of cipher }else{ echo 'not have info params'; } 代替.color。从Excel中的主页选项卡和字体类别中找到所需的颜色和色调。然后记录一个宏,将单元格的字体颜色更改为您想要的颜色。然后使用&#34;更多颜色选项&#34;然后轻轻地向上或向下滑动较暗/较浅的条。这将在您录制的excel宏中为您提供.interior.TintSndShade属性。

答案 2 :(得分:0)

我还找到了另一个解决方案,可能有点棘手......我创建了一个具有所需字体颜色但没有文字的单元格,并将此单元格复制到我需要颜色的位置。

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