0

私はほとんど動作するこのコードを持っています:

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 の正しいセルを参照するにはどうすればよいですか?

どんな助けでも感謝します。

4

2 に答える 2

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
于 2013-09-13T16:21:46.050 に答える