2013-09-13 2 views
0

у меня есть этот код, который почти работает:condtional петля VBA формат не суметь

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?

Любая помощь приветствуется.

+0

Я вырезать и вставить код в точности так, и он отлично работает в Excel 2010 –

+0

Я в настоящее время на 2003. Форматирование не похоже на правильную линию. (1) ячейка B1 условное форматирование показывает = LEN (IV65531)> 100 –

+0

Если кто-то может подумать о другом способе сделать это, возможно, используя ОЦЕНКУ, пожалуйста, дайте мне знать ... –

ответ

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 
3

Ссылки на ячейки могут меняться в зависимости от выбранной ячейки.

Вы можете добавить абсолютную ссылку на столбец B:

ws.Columns ("B: B"). FormatConditions.Add Тип: = xlExpression, Formula1: = "= LEN ($ B1)> 100"

Но самый простой способ это, вероятно, явно выбрать ячейку, вероятно, A1:

ws.Activate

ws.Cells (1, 1) .Select

Here is a link от Microsoft, объясняющие этот вопрос.

+0

Добавление «Диапазон (« A1 ») , select' после the for и 'Formula1: =" = LEN ($ B1)> 100 "' работал –

+0

вздох ... Он по-прежнему делает странные вещи. Теперь на некоторых листах он отлично работает на других, это не так. Я не уверен, какая разница между листами. –

Смежные вопросы