2016-10-06 9 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

'{bool-expression} Then'の場合、' {bool-expression} 'と' Boolean'値を比較することは冗長です。 –

+2

@ Mat'sMug - その問題とそれに関連する 'If x = True Then' 'y = True'' Else' 'y = False'' End If'( 'y = x'に単純化) ! – YowE3K

関連する問題