Я пытаюсь создать подпрограмму, которая очищает содержимое ячейки, если ячейки соответствуют определенным параметрам. Я думал, что это будет довольно просто, но кажется, что это сложнее, чем я думал.
Вот требования:
a) функцию нужно запустить, выбрав ячейку с E4 по I4
b) Все в ячейках должно быть очищено, если ячейки не ЦВЕТЫ.
в) с каждой итерацией строка NUMBER увеличивается, столбцы остаются неизменными.
Я приложил код, который я написал, а также «старый код», который мне поручено обновить. Как видите, я пытаюсь сделать новый код более интеллектуальным, чем старый (старый код очищает статический диапазон ячеек).
Я пытался использовать несколько разных операторов цикла каждый разполучить какую-то ошибку. С этим кодом я не получаю сообщение об ошибке (замечательно!), Но, похоже, оно ничего не делает с целевой таблицей. Все ячейки все еще заполнены данными после выполнения этого :(
Sub Clear ()
target = ActiveSheet.Name ' Day Sheet
Sheets(target).Select
For counter = 4 To 1000
If Range("e" & counter, "i" & counter).Interior.ColorIndex <> xlColorIndexNone Then
Range("e" & counter, "i" & counter).ClearContents
Exit For
End If
Next
End Sub
'This is the OLD CODE, that has been proven to work:
Sub Clear()
'
target = ActiveSheet.Name ' Day Sheet
Sheets(target).Select
Range("c4:i29").Select
Selection.ClearContents
Application.CutCopyMode = False
End Sub
Я ожидал, что новый код заработает или, возможно, очистит больше строк, чем требуется, но, похоже, ничего не делает. Экран мигает длядоли секунды, поэтому я знаю, что код работает, но без реального эффекта. Любая помощь приветствуется и очень ценится !!!!