2016-11-04 18 views
0

Cherryが値を保持していれば、その行の他のセルを削除または非表示にします削除された/隠され、黒いものはkeeptする必要があります。現実には色の違いはありませんが、これは単に説明のためのものです。この場合、データセルD2は保持され、C2、B2、およびA2のデータは除去/非表示になります。そしてC2の下にC2のデータが残っていたら、B2とA2は削除/隠れています...もしAppleだけがA23のようないくつかのセルのデータを持っていればそれは残っていて、削除/隠れません。もちろんB23、C23、D23は空の場合この論理をVBAやExcelの式でどうやって実装できますか?ありがとう!]戻り値が空白の場合は、別のセルが空白の場合は別のセルの値を返し、3番目のセルの値を返す場合

Excel sheet

+0

まず、試したコードを入力してください。第二に、あなたの説明が不明です。例えば、 "p under Orange"ではなく "cell C2"のようなセルのアドレスを使うべきでしょう。 – Limak

+1

あなたの要求を言い換えてみましょう:セルが空でないときはいつでも、そのセルの左側と同じ行のすべてのセルを空にします。これは正しいです? –

+0

@ L.Dutchはい、それは正解です、ありがとう! – Hankman3000

答えて

1

これは動作するはずです。あなたの宿題ではないことを願ってください)

Sub ThisMacro() 
    Dim LastRow As Long, LastCol As Long 
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row 
    For i = 2 To LastRow 
     LastCol = Cells(i, Columns.Count).End(xlToLeft).Column 
     If LastCol > 1 Then 
      Range(Cells(i, 1), Cells(i, LastCol - 1)).ClearContents 
     End If 
    Next i 
End Sub 
+0

あなたはいつも宿題があります。時々あなたはあなたの自己によってそれを解決することができ、時には良い助けが必要です。 ) どうもありがとう! – Hankman3000

+0

もう1つ質問がありますが、A、B、C、Dが実際にP、Q、R、Sであり、Aからの列が残っている場合はどうすればいいですか?この範囲にない他の列からデータを削除しないようにするには? – Hankman3000

+1

「LastRow」は、最後の空白でないセルiの列Aに基づいていることに注意してください。列Aは行90の最後の値を持ち、行Bの行110の列Bは、行90に達するまで値をクリアします。 – Limak

関連する問題