2011-06-09 331 views
2

我想用vba生成特定佈局的Excel表格。我的一個子程序是字體顏色。它看起來像這樣: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 

但它不起作用。字體始終以黑色生成。我不知道爲什麼。

回答

3

它適用於我,但有一個逆轉; 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 rangecell2聲明range類型,cell1仍然是一個變種。

+0

對於cell1類型聲明註釋+1,一個常見問題的好例子 – datatoo 2011-06-09 15:43:06

0

可能是嘗試: 子setfont程序(小區1,小區2作爲範圍,fcolor作爲字符串) 範圍(小區1,小區2)。選擇 如果fcolor = 「W」。然後 隨着Selection.Interior .ThemeColor = xlThemeColorLight1 .TintAndShade = 0 結束隨着 elseif的fcolor = 「b」 然後 隨着Selection.Interior .ThemeColor = xlThemeColorDark1 .TintAndShade = 0 結束隨着 結束如果

結束子

相關問題