有没有更好的方法来使用VBA变量编写公式

时间:2014-12-02 12:32:22

标签: vba excel-vba excel

我需要在VBA中为条件格式化语句编写以下公式:

r.FormatConditions.Add Type:=xlExpression, Formula1:="=AND($AYQ4<=D$3;$AYR4>=D$3)"

在VBA中,我有以下数据类型变量,表示各种地址部分:

  • 列D:lCurrentColumn
  • AYQ列:lStartcolumn
  • AYR列:lEndcolumn
  • 第3行:lHeadersRow
  • 第4行:lCurrentRow

使用VBA变量编写上述语句而不是键入行号和列名的最佳方法是什么?有没有更好的方式:

r.FormatConditions.Add Type:=xlExpression, Formula1:="=AND($" colnumtoletter(lStartColumn) &  lCurrentRow & "<=" & columntoletter(lCurrentColumn) & "$" & lHeadersRow & ",$" & lEndColumn & lCurrentRow & ">=" & lCurrentColumn & "$" & lHeadersRow" & ")"

1 个答案:

答案 0 :(得分:1)

如果r(或其第一个单元格)引用D4,则可以使用:

r.FormatConditions.Add Type:=xlExpression, Formula1:="=AND(R[0]C" & lStartColumn & "<=R" & lHeadersRow & "C,R[0]C" & lEndColumn & ">=R" & lHeadersRow & "C)"

作为旁注,请确保在执行此操作之前选择r,因为您使用的是相对引用。