【问题标题】:excel vba generate format cells with different font colorexcel vba生成具有不同字体颜色的格式单元格
【发布时间】:2011-09-11 17:20:45
【问题描述】:

我想用 vba 生成一个特定布局的 excel 表。我的子程序之一是字体颜色。它看起来像这样:

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

但它不起作用。字体始终以黑色生成。我不知道为什么。

【问题讨论】:

    标签: excel vba fonts colors


    【解决方案1】:

    它对我有用,但是有一个逆转; 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 仍然是一个变体。

    【讨论】:

    • +1 表示 cell1 类型声明注释,一个常见问题的好例子
    【解决方案2】:

    可以试试这个: Sub SetFont(cell1, cell2 As range, fcolor As String) 范围(单元格1,单元格2)。选择 如果 fcolor = "w" 那么 带选择。内部 .ThemeColor = xlThemeColorLight1 .TintAndShade = 0 结束于 否则如果 fcolor = "b" 那么 带选择。内部 .ThemeColor = xlThemeColorDark1 .TintAndShade = 0 结束于 结束如果

    结束子

    【讨论】:

      猜你喜欢
      • 2013-06-04
      • 2016-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      • 2021-09-16
      相关资源
      最近更新 更多