Sub fmtCDDEL()
Dim fmtCD As FormatCondition
On Error GoTo Err
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
With Cells.FormatConditions
Ans = MsgBox("В Вашем файле " & .Count & " правил условного форматирования!" & Chr(13) & "Удалить их?", vbInformation + vbYesNo)
If Ans = vbNo Then Exit Sub
I = 1
Do While .Count <> 0
Cells.FormatConditions(I).Delete
Application.StatusBar = "Удаляется " & I & " правило. Пожалуйста подождите...."
DoEvents
I = I + 1
Loop
End With
Err:
With Application
If Cells.FormatConditions.Count <> 0 Then
.StatusBar = "Не удалено " & Cells.FormatConditions.Count & ", запустите макрос еще раз..."
Else
.StatusBar = False
End If
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
End Sub
но без обработчика ошибок он удаляет РОВНО половину правил УФ и вылетает с ошибкой Subscript out of range. Приходится повторно его запускать, НО опять до удаления половины оставшихся правил УФ. И так пока все не удаляться. В чем причина? Файл не прикладываю - больно тяжел. Можно взять по ссылке в первом посте
Согласие есть продукт при полном непротивлении сторон
I = 1
Do While .Count <> 0
Cells.FormatConditions(I).Delete
Application.StatusBar = "Удаляется " & I & " правило. Пожалуйста подождите...."
DoEvents
I = I + 1
Loop
удалили i-ое правило, все остальные съехали на освободившееся место? м.б. так?
Код
For i=.Count to 1 step -1
Cells.FormatConditions(I).Delete
Application.StatusBar = "Удаляется " & I & " правило. Пожалуйста подождите...."
DoEvents
Next
ну и уточнить - с нуля они там нумеруются или с единицы...
фрилансер Excel, VBA - контакты в профиле "Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг