プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (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
'---------------------------------------------

以上ここまで。
 
    • good
    • 1

質問の確認になりますが、



・2列目(B列は)削除の対象ではない(日付だから)。
・それ以外の値は、100以上を確認する数値。

でよろしいでしょうか??
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/07/01 20:09

抽出する条件が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

こんな感じの事でしょうか。

この回答への補足

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

補足日時:2009/07/01 19:50
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A