• 締切済み

IFの構文で

IF の構文を作っていますが Cells(p, 6) がブランクのとき何もしない Cells(p, 6)<= If Cells(p, 7) とき何もしない Cells(p, 6)< If Cells(p, 7) とき その列を削除する という文にしたいのですがうまくできません 自分なりに以下つくったのですが.... お教えいただければと思い投稿しました、どうぞよろしくお願いします。 Sub 削除() Dim p As Long Sheets("前P").Select For p = 200 To 7 Step -1 ’なにもしないで次の処理へ行く ここがうまくいかない If Cells(p, 6) = " " Then   ElseIf Cells(p, 6) < Cells(p, 7) Then Range(Cells(p, 2), Cells(p, 20)).Select Selection.Delete Shift:=xlUp End If Next p End Sub うまくいかないのは上記の構文だとブランクも削除の対象と なってしまうところです。 うまくブランクは残して実行する方法を教えていただきたいのですがよろしくお願いいたします。 .

みんなの回答

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>If Cells(p, 6) = " " Then これはセルが空白ではなく「セルに半角のスペースが1個ある場合」になります。 Cells(p, 6) = "" との違いを確認願います。 If Cells(p, 6).Value <> "" And Cells(p, 6).Value < Cells(p, 7).Value Then  Range(Cells(p, 2), Cells(p, 20)).Delete Shift:=xlUp End If と言う感じでどうでしょうか? ⇒Cells(p, 6)が空白ではなく、且つCells(p, 7)よりも小さい時。

0810ku
質問者

お礼

できました! わかりやすく早い回答でとても助かりました。 ありがとうございました。

関連するQ&A