• 締切済み

vbaでシートより100より大きい値を削除するコードを教えてください

vba初心者です。 値の羅列のシートでセルの値が100より大きいセルはのある行は削除したい時どのようなコードを書けばわからず苦慮してます。 例として下記のようなシートの場合どうかきますでしょうか? A B C D E F ---------------------------------------- 1 20090101 20 30 95 40 ---------------------------------------- 2 20090102 25 35 105 45 ---------------------------------------- 3 20090103 40 50 110 50

みんなの回答

  • myRange
  • ベストアンサー率71% (339/472)
回答No.3

データが提示されてるのはいいんですが、 どの列を基準にするのか、例えば、E列とか C列~F列のどこかが、とかを説明しないと 的確な回答はできません。 で、C列~F列のどこかに、100以上があったら、とした場合。 但し、1行目は見出しとする '-------------------------------------- Sub Test()  Dim R As Long  For R = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1   If WorksheetFunction.CountIf(Cells(R, "C").Resize(1, 4), ">100") > 0 Then     Rows(R).Delete xlShiftUp   End If  Next R End Sub '--------------------------------------------- 以上ここまで。  

  • hiro_266
  • ベストアンサー率0% (0/0)
回答No.2

質問の確認になりますが、 ・2列目(B列は)削除の対象ではない(日付だから)。 ・それ以外の値は、100以上を確認する数値。 でよろしいでしょうか??

zuccero
質問者

お礼

回答遅くなり申し訳ありません。 ・2列目(B列は)削除の対象ではない(日付だから)。→そのとおりです。 それ以外の値は、100以上を確認する数値。→そのとおりです

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

抽出する条件がD列と仮定してますが、 Sub try()  Application.DisplayAlerts = False  With Worksheets("Sheet1")     .Range("A1").AutoFilter 4, ">100"     .Range("A2", Cells(Rows.Count, 1).End(xlUp)).SpecialCells(xlCellTypeVisible).Delete     .AutoFilterMode = False  End With  Application.DisplayAlerts = True End Sub こんな感じの事でしょうか。

zuccero
質問者

補足

D列目の最大行より下から上向きに100より大きい値のあるセルを削除 するというよう感じのコードでしょうか? 何点か質問があります。 (1).Range("A1").AutoFilter 4, ">100"でA1とする  理由がわかりません。(range関数の意味も含め分かりません。) (2)このコードでマクロを実行しようとすると  .Range("A1").AutoFilter 4, ">100"で構文エラーとなり実行できま せん。

関連するQ&A