0

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

我想格式化 Color、Size、Bold 等属性。我可以修改 Color、Bold 属性,但是当我尝试修改 Size 属性时,它会引发异常“无法设置 Font 类的 Size 属性”。

谁能帮助我如何设置条件格式对象的 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。例如 A1 到 J10。现在,如果我选择此范围内的任何单元格,那么其对应的行和列应该得到一个条件格式,并且它会有自己的格式。这包括不同的填充颜色、不同的字体大小、边框的变化等。例如,如果我选择单元格 D4,则范围 A4:J4 和 D1:D10 将应用条件格式。这可以通过在这两个范围上应用格式并选择来完成类型为表达式,其公式为真。现在,如果我选择任何其他单元格,则应将 A4:J4 和 D1:D10 单元格的格式还原,并且应突出显示当前选定单元格的行和列。

我们可以更改格式,例如仅颜色或图案。但它无法设置大小。谁能解释我为什么会这样。可以从用户界面更改大小。即使用条件格式的格式选项。使用它可以更改满足条件的单元格的字体大小、颜色等。

从 UI 中可能发生的事情也应该从代码中实现。

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

4

2 回答 2

0

我的研究表明:“您不能在条件格式中更改字体”。

我会在 VBA 中这样做:

For Each cell In Range("A1:A10")
    With cell
          .Font.Bold = true
          .Font.Color = 0x000000FF
          .Font.Size = 14
    End With
Next 
于 2012-07-27T06:15:57.603 回答
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
于 2012-07-30T15:57:36.133 回答