我的代码几乎可以使用:
Sub condFormat()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Columns("B:B").FormatConditions.Delete
ws.Columns("B:B").FormatConditions.Add Type:=xlExpression, Formula1:="=LEN(B1)>100"
ws.Columns("B:B").FormatConditions(1).Interior.ColorIndex = 3
Next
End Sub
但它不会正确更新实际的单元格。
我最终得到的结果如下:
=LEN(B65517)>100
b列单元格中的。
如何修改此项以引用B列中的正确单元格?
任何帮助表示感谢。
答案 0 :(得分:3)
可以根据当前选定的单元格移动单元格引用。
您可以为B列添加绝对引用:
ws.Columns(“B:B”)。FormatConditions.Add类型:= xlExpression, 一级方程式:= “= LEN($ B1)→100”
但最简单的方法是明确选择一个单元格,可能是A1:
来自Microsoft的ws.Activate
ws.Cells(1,1)。选择
Here is a link解释了这个问题。
答案 1 :(得分:0)
我最后只是做了一个循环,因为我无法让它以其他方式工作:
Sub condFormat()
Application.ScreenUpdating = False
Dim ws As Worksheet
Dim myRange As Range, c As Range
For Each ws In ActiveWorkbook.Worksheets
ws.Activate
ws.Columns("B:B").FormatConditions.Delete
Set myRange = Range("B2", Cells(Rows.Count, "B").End(xlUp))
For Each c In myRange
If Len(c) > 100 Then c.Interior.ColorIndex = 3
Next
Next
Application.ScreenUpdating = True
End Sub