Excel VBA条件格式和函数

时间:2018-04-18 12:59:45

标签: excel vba excel-vba conditional-formatting

更新

我尝试在以下情况下使用条件格式:

如果C列中的单元格(以C9开头)Tabelle3.Range(Tabelle3.Cells(9, 3), Tabelle3.Cells(lastcell, 3))

  1. 不为空Cell <>"" AND
  2. 填写Tabelle4 Cell B2 Tabelle4.Range("B2")
  3. 中所述的标准

    Interior.Color应更改为Cellclr及其Font.Color更改为Fontclr

    启动旧帖子: 我查看了有关条件格式的各种帖子,但我找不到任何内容,这可以很好地解决我的问题。

    我想将条件格式应用于Excel工作簿,该工作簿将不断扩展。因此,我写了以下代码:

    Sub ConForm()
    
    Dim lastcell As Long
    Dim Cellclr As Long
    Dim Fontclr As Long
    
    lastcell = Tabelle3.Range("A1048576").End(xlUp).Row
    Cellclr = RGB(232, 245, 246)
    Fontclr = RGB(26, 155, 167)
    
    Set C = Tabelle3.Range(Tabelle3.Cells(9, 3), Tabelle3.Cells(lastcell, 3))
    
        With C.FormatConditions.Add( _
                Type:=xlExpression, _
                Formula1:="=AND($C9<>"""";"$C9.Value <= Tabelle4.Range(""B2"").Value)")
            .Interior.Color = Cellclr
            .Font.Color = Fontclr
        End With
    
    End Sub
    

    如果我只使用以下范围和公式:

    Range("C9")
    Formula1:="=C9<>""""") 
    

    代码适用于Cell C9。但是,如前所述,它应该是这个公式

    =AND($C9<>"""";"$C9.Value <= Tabelle4.Range(""B2"").Value
    

    适用于范围

    Tabelle3.Range(Tabelle3.Cells(9, 3), Tabelle3.Cells(lastcell, 3))
    

    有人知道我在哪里犯了错误/错误以及如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您需要正确连接字符串和值。

示例:

MyVariable = "ccc"
result = "aaa" & "bbb" & MyVariable & "AnotherString"
'result is "aaabbbcccAnotherString"

我不确定你尝试了什么,但可能你的意思是

Formula1:="=AND($C9<>"""";" & Range("$C9").Value <= Tabelle4.Range("B2").Value & ")")

或者更像是

Formula1:="=AND($C9<>"""";$C9<=Tabelle4!B2)")

更新

Formula1:="=AND($C9<>"""";$C9<=" & Tabelle4.Range("B2").Value & ")")

答案 1 :(得分:1)

首先,检查格式中的颜色以查看字符串是什么以及不是什么 - 您的公式中间有一个神秘的额外",这将阻止代码首先编译。您还尝试将VBA代码(Tabelle4.Range("B2").Value)放入Excel公式中,但该公式无法正常工作。

如果要在运行宏时修复Tabelle4.Range("B2").Value的值,可以更改

Formula1:="=AND($C9<>"""";"$C9.Value <= Tabelle4.Range(""B2"").Value)")

Formula1:="=AND($C9<>"""";$C9<=" & Tabelle4.Range("B2").Value & ")")