无法为条件格式设置Size属性

时间:2012-07-27 05:59:05

标签: c# excel font-size conditional-formatting

我想根据某些条件在范围上添加条件格式。

我想格式化颜色,大小,粗体等属性。我能够修改颜色,粗体属性,但是当我尝试修改Size属性时,它会抛出异常“无法设置Font类的Size属性”。

任何人都可以帮助我如何设置条件格式对象的大小属性。

也无法设置下标或上标属性。

注意:这些属性也不是只读的。

            FormatCondition format =(FormatCondition)( targetSheet.get_Range("A1:A10",
            Type.Missing).FormatConditions.Add(XlFormatConditionType.xlExpression, XlFormatConditionOperator.xlGreater,
            "100", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing));

            format.Font.Bold = true;
            format.Font.Color = 0x000000FF;
            format.Font.Size = 14;
            format.Font.Subscript = true;

为了明确实际的用例,我们举一个例子,我在excel中有10 * 10的数据。这个10 * 10是一个具有自己格式的Range。对于E.g A1至J10。现在,如果我选择此范围内的任何单元格,则其对应的行和列应获得条件格式,并且它将具有自己的格式。这包括不同的填充颜色,不同的字体大小,边框的变化等。例如,如果我选择单元格D4然后范围A4:J4和D1:D10将应用条件格式。这可以通过在这两个范围上应用格式并选择键入表达式,其公式为true。现在,如果我选择任何其他单元格,则应该恢复A4:J4和D1:D10单元格的格式,并且应突出显示当前所选单元格的行和列。

我们可以更改格式,例如颜色或图案。但它不可能设置大小。任何人都可以解释我为什么会如此。 可以从用户界面更改大小。即使用条件格式的格式选项。使用它可以改变满足条件的单元格的字体大小,颜色等。

也可以通过代码从UI中获得可能的东西。

分享图片以获取视图:http://imgur.com/bemI9

2 个答案:

答案 0 :(得分:0)

我的研究表示:“您无法在条件格式中更改字体”。

我会在VBA中这样做:

For Each cell In Range("A1:A10")
    With cell
          .Font.Bold = true
          .Font.Color = 0x000000FF
          .Font.Size = 14
    End With
Next 

答案 1 :(得分:0)

尝试以下操作(您可以更改颜色值并为字体大小,颜色等添加其他属性):

Dim fontSize As Variant
Dim fontType As Variant
Dim fontBold As Variant
Dim cellIn As Variant

Sub setVars()

    With Range("A1")
        fontSize = .Font.Size
        fontType = .Font.Name
        fontBold = .Font.Bold
        cellIn = .Interior.Color
    End With


End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Application.ScreenUpdating = False
    Application.EnableEvents = False

    Dim r As Range
    Set r = Range("A1:J10")

    With r
        .Font.Size = fontSize
        .Font.Name = fontType
        .Font.Bold = fontBold
        .Interior.Color = cellIn
    End With

    With r.Rows(Target.Row)
        .Interior.ColorIndex = 5
        .Font.Bold = True
    End With

    With r.Columns(Target.Column)
        .Interior.ColorIndex = 5
        .Font.Bold = True
    End With

    Application.ScreenUpdating = True
    Application.EnableEvents = True

End Sub