Excel VBA генерировать формат ячейки с другим цветом шрифта - PullRequest
2 голосов
/ 09 июня 2011

Я хочу создать лист Excel в определенном макете с помощью VBA.Одна из моих подпрограмм предназначена для цвета шрифта.Это выглядит так:

Sub SetFont(cell1, cell2 As range, fcolor As String)

range(cell1, cell2).Select
If fcolor = "w" Then
    With Selection.Font
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
    End With
ElseIf fcolor = "b" Then
    With Selection.Font
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = 0
    End With
End If

End Sub

Но это не работает.Шрифт всегда генерируется черным.Я не знаю почему.

Ответы [ 2 ]

3 голосов
/ 09 июня 2011

Это работает для меня, однако есть обратный ход; xlThemeColorLight1 производит темный текст и xlThemeColorDark1 создает более светлый текст, который довольно тупой, но все готово.

Sub foo()
SetFont Range("A1"), Range("A6"), "b"
End Sub

Sub SetFont(cell1 As Range, cell2 As Range, fcolor As String)
If fcolor = "w" Then
    With Range(cell1, cell2).Font
        .ThemeColor = xlThemeColorLight1
    End With
ElseIf fcolor = "b" Then
    With Range(cell1, cell2).Font
        .ThemeColor = xlThemeColorDark1
    End With
End If
End Sub

Не имеет отношения, но если у вас есть cell1, cell2 As range, только cell2 объявлено типа range, cell1 остается вариантом.

0 голосов
/ 24 марта 2017

Можно попробовать это: Sub SetFont (cell1, cell2 As range, fcolor As String) range (cell1, cell2). Выберите, если fcolor = "w", то с Selection.Interior .ThemeColor = xlThemeColorLight1 .TintAndShade = 0 Завершить сElseIf fcolor = "b" Затем с Selection.Interior .ThemeColor = xlThemeColorDark1 .TintAndShade = 0 Конец с Концом, если

Конец Sub

...