【发布时间】: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
结束子
【问题讨论】: