如何编写在WITH公式中的行之间循环的WITH语句?

时间:2019-07-03 14:35:27

标签: excel vba

我正在构建一个包含许多行的交互式甘特图(这就是为什么我使用VBA的原因),并且在格式化单元格时遇到了麻烦。基本上,我只希望单元格具有基于AND公式的颜色。该公式引用了其他单元格,因此格式不是基于单元格自身的值。 棘手的部分是我的公式需要根据其循环通过的特定行进行更改。我设法建立了可以正确遍历每一行的代码,但是我也无法改变公式。现在,我的代码在我的with-expression的公式部分给了我一个语法错误。 希望大家能帮忙!

我认为问题可能在于连接技巧可能无法与带有语句一起使用。但是我不知道如何以其他方式进行格式化。

Public Sub FormatTest()
Dim Sheet As Object
Dim Area As Range, r As Range
Dim i As Integer

Set Area = Sheets("Styregruppe - Tester").Range("H11:BK58")
For Each r In Area.Rows
    For i = 11 To 58
    With r.FormatConditions
    .Delete
        With .Add(Type:=xlExpression, Formula1:="=OG(("C" & i)<=H8;("D" & i)>=H8)")
            .Interior.Color = RGB(0, 176, 240)
            .StopIfTrue = False
        End With
    End With
 Next i
 Next r
End Sub

1 个答案:

答案 0 :(得分:1)

此行:.Add(Type:=xlExpression, Formula1:="=OG(("C" & i)<=H8;("D" & i)>=H8)")

如果引号不正确,您将C排除在引号之外,因此它认为它是变量,并且&符位于引号内,因此被解释为字符串字符,而不是串联字符。

您想要类似的内容:.Add(Type:=xlExpression, Formula1:="=OG((C" & i & ")<=H8;(D" & i & ")>=H8)")