Excel VBA格式化单元格

Excel VBA格式化单元格,excel,vba,formatting,conditional-statements,Excel,Vba,Formatting,Conditional Statements,我有一个电子表格,我想有条件的格式。我想根据同一行中的其他两个单元格设置某列中每个单元格的格式。每行都有不同的数字,有些行根本没有数字 示例:我想要G16>D16+E16+H16和G16 这是我的密码: 'Format measured dimensions Dim rg As Range Dim cond1 As FormatCondition, cond2 As FormatCondition Set rg = Range("G16").End(xlDown) '

我有一个电子表格,我想有条件的格式。我想根据同一行中的其他两个单元格设置某列中每个单元格的格式。每行都有不同的数字,有些行根本没有数字

示例:我想要G16>D16+E16+H16和G16 这是我的密码:

'Format measured dimensions
Dim rg As Range
    Dim cond1 As FormatCondition, cond2 As FormatCondition
    Set rg = Range("G16").End(xlDown)


    'clear any existing conditional formatting
    rg.FormatConditions.Delete

    'define the rule for each conditional format
    Set cond1 = rg.FormatConditions.Add(xlExpression, , 
"=AND($G16>$D16+$E16,$E16<>"""",$F16<>"""")")
    Set cond2 = rg.FormatConditions.Add(xlExpression, , 
"=AND($G16<$D16-$E16,$E16<>"""",$F16<>"""")")

    'define the format applied for each conditional format
    With cond1
        .Font.FontStyle = "Bold"
        .Font.Color = vbRed
       End With

         With cond2
        .Font.FontStyle = "Bold"
        .Font.Color = vbRed
    End With
“测量尺寸的格式”
变暗rg As范围
Dim cond1作为FormatCondition,cond2作为FormatCondition
设置rg=范围(“G16”)。结束(xlDown)
'清除任何现有条件格式
rg.FormatConditions.Delete
'为每个条件格式定义规则
Set cond1=rg.FormatConditions.Add(xlExpression,
“=和($G16>$D16+$E16,$E16”“,$F16”“)”)
Set cond2=rg.FormatConditions.Add(xlExpression,

“=和($G16
Set rg=范围(“G16”)。结束(xlDown)
-这只以一个单元格结束,而不是从
G16
到结尾的范围。要进行验证,请使用
Debug.Print rg.Address
并检查即时窗口。它为每个单元格设置了相同的格式,并且在即时窗口中显示
$G$1443
这只是一个单元格:
设置rg=range(“G16”,range(“G16”).end(xlDown))
将是整个范围。现在它显示的是范围,但它将第16行的格式应用于所有单元格。有没有更好的方法来做到这一点?可能是所有新代码?可能先手动使用条件格式。我不明白将第16行的格式应用于所有单元格的意思。