2016-10-06 6 views
0

Очень простой вопрос. Я продолжаю получать сообщения об ошибках и преуспевать в сбоях. Что случилось с моим кодом:Очистка всех скрытых ячеек в диапазоне

Sub Clear() 

Dim c As Range 

For Each c In ActiveSheet.Range("HeatPump1").Cells 

    If c.EntireRow.Hidden = True Then 
     c.Clear 
    End If 
Next c 

End Sub 
+3

Изменение '.Cells' в' .Rows' –

+0

код отлично работает для меня. (Я предположил, что «HeatPump1» - это диапазон на ActiveSheet.) – YowE3K

ответ

1

Какая строка выдает сообщение об ошибке? У вас есть диапазон под названием «HeatPump1» на активном листе, когда код работает?

На боковой ноте c.EntireRow.Hidden является логическим значением, поэтому вам не нужно проверять, является ли оно истинным. Вы можете просто написать:

If c.EntireRow.Hidden Then 
+0

Kudos for 'If {bool-expression} Then', где сравнение' {bool-expression} 'с значением' Boolean' является избыточным. –

+2

@ Mat'sMug - эта проблема и связанная с этим 'If x = True Then'' y = True' 'Else'' y = False' 'End If' (что упрощает' y = x'), всегда раздражать меня ! – YowE3K

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