2014-01-07 30 views
5

的亮度我選擇一個文本並改變其顏色,它告訴我這個font.TintAndShade不能改變文本

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

但是當我運行這段代碼TintAndShade無法工作。單元格中文本的亮度不能由vba指定。有沒有其他方法可以改變文字的亮度?或者我怎樣才能讓TintAndShade工作?

回答

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,然後用它來設置相關的單元格的字體的亮度和一次完成後,只需刪除臨時表。

+2

另一個很好的答案,+1。 – pnuts

+2

@pnuts說什麼。 –

1

另一種解決方案是使用.color而不是.interior.TintSndShade。從excel中的主頁選項卡和字體類別中查找所需的顏色和色調。然後記錄改變單元的字體顏色的宏到你想要的。然後使用「更多顏色選項」,並稍微向上或向下滑動較暗/較亮的欄。這會給你記錄的excel宏中的.color屬性。

+0

很好的答案。但是如果你可以製作一個示例宏來改變幾個示例單元格的字體顏色,這將是一個很好的答案。問題很老,OP已經解決了他的問題;但有人尋找類似的問題可能會發現這個問題,並在你的答案有一個小例子將幫助他。 – grochmal

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