【问题标题】:Reference in VBA conditional format formula is not workingVBA 条件格式公式中的引用不起作用
【发布时间】:2018-01-26 15:21:27
【问题描述】:

这是一个更大代码的 sn-p。我尝试使用以下代码在活动列可以更改的单元格范围中插入条件格式。我希望条件格式公式随着活动列的变化而更新。 f1 = "=IF(AND(MID(CTO_1,6,1)=""W"",NOT(ISBLANK(RC[-7]))),RC12<>RC19,RC11<>RC19)"'这可以正常工作,但是当我尝试将其修改为动态时它不起作用。

我花了很多时间寻找一个没有运气的解决方案

Private Sub test()

Worksheets("C9 map").Activate

Dim lstCol, lstRow, nCol As Integer
Dim cRng3, cRng2, cRng1, strRow As Variant

lstCol = LastRowColumn("c") ' function to find last column
lstRow = LastRowColumn("r") ' function to find last row

nCol = lstCol + 1

strRow = 5

Range(Columns(nCol).Rows(strRow), Columns(nCol).Rows(strRow)).Activate

Dim actCol, hdrRow5 As Variant

actCol = ActiveCell.Column

Dim f1 As String

hdrRow5 = 5
cRng1 = "RC" & 11 'Column K = 11
cRng2 = "RC" & 12 'Column L = 12
cRng3 = "RC" & ActiveCell.Column

f1 = "=IF(AND(MID(CTO_1,6,1)=""W"",NOT(ISBLANK(RC[-7]))),cRng2<>cRng3,cRng1<>cRng3)"

With Columns(actCol)
    .ColumnWidth = 20
    .HorizontalAlignment = xlCenter
    .WrapText = True
End With
With Range(Columns(actCol).Rows(hdrRow5), Columns(actCol).Rows(lstRow))
    .FormatConditions.Add Type:=xlExpression, Formula1:=f1


        With .FormatConditions(1).Font
            .Bold = True
            .Italic = False
            .Color = -16776961
            .TintAndShade = 0
        End With
        With .FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 65535
            .TintAndShade = 0
        End With
        .FormatConditions(1).StopIfTrue = False
End With

结束子

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    问题在于,由于 "".

    将你的行改为:

    f1 = "=IF(AND(MID(CTO_1,6,1)=""W"",NOT(ISBLANK(RC[-7])))," & cRng2 & "<>" & cRng3 & "," & cRng1 & "<>" & cRng3 & ")" 
    

    【讨论】:

    • 效果很好。我知道我错过了一些简单的东西。我非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    相关资源
    最近更新 更多