条件格式公式中的命名范围

时间:2015-08-13 20:19:43

标签: excel vba excel-vba

我的代码如下。我想设置命名范围(单元格)而不是范围(单元格)H $ 7和$ G $ 7。因为,例如,如果我在这些单元格之前添加新列并使用此代码恢复宏,则它无法正常工作。你有什么想法吗?提前致谢

With Range(SomeRange).FormatConditions _
.Add(xlExpression, xlFormula, "=((H$7<=$G$7)*((H$7+7)>$G$7))") 
With .Interior                                                      
     .Color = RGB(197, 217, 241)                                    
End With
End With

1 个答案:

答案 0 :(得分:1)

只需在公式中键入命名范围的名称,只要命名范围存在,就没有什么特别之处。如果我将H7命名为“B”和G7“A”,那么这对我有用......

Sub Test()
    'Range
    Dim R As Range
    Set R = Range("A1")
    R.FormatConditions.Delete
    'Formula
    Dim F As String
    F = "=((B<=A)*((B+7)>A))"
    'Condition
    Dim Cond As FormatCondition
    Set Cond = R.FormatConditions.Add(xlExpression, xlFormula, F)
    Cond.Interior
    Cond.Color = RGB(197, 217, 241)
End Sub  

请注意,使用公式参数“FormatConditions.Add”,双引号内的所有内容都会被完全评估,就像在单元格中键入一样。参数作为字符串传递并解释为文字字符串值。因此,您可以通过将公式字符串复制并粘贴到单元格来测试它,它应该工作相同(返回1或0),在单元格中修改它,然后复制并回过去。

您不必有问题地创建/设置名称,但如果您愿意,那么我可能会使用workbooks collection,除非您在多个工作表上重复相同的名称,然后使用{{3 }}

关于命名范围......

worksheet collection

The Object (Name)

The Collection (Names)

相关问题