2014-01-07 3 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.

Вот альтернатива. Создайте новую книгу и вставьте этот код в модуль.

Logic: The .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 

ScreenShot:

При запуске этого вы будете видеть изменение яркости шрифта, как показано на скриншоте ниже. :)

enter image description here

Примечание:

Для реального времени сценарии, создать временный лист и в любой клетке, установите его .Interior.TintAndShade, а затем использовать это, чтобы установить яркость шрифта соответствующую ячейку и один раз просто удалите временную таблицу.

+2

Еще один отличный ответ, +1. – pnuts

+2

Что сказал @pnuts. –

1

Другим решением является использование .color вместо .interior.TintSndShade. Найдите цвет и оттенок, которые вы хотите, с домашней вкладки и категории шрифтов в excel. Затем запишите макрос, изменив цвет шрифта ячейки на то, что вы хотите. Затем используйте «дополнительные параметры цвета» и слегка сдвиньте темную/более легкую полосу вверх или вниз. Это даст вам .color недвижимости в вашем записанном макросе excel.

+0

Хороший ответ. Но если вы можете сделать пример макроса, который изменит цвет шрифта с помощью пары примеров ячеек, это будет отличный ответ. Вопрос старый, ОП уже решил свою проблему; но кто-то, кто ищет подобную проблему, может найти этот вопрос, и небольшой пример в вашем ответе поможет ему. – 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