0

私は Excel の VBA を初めて使用し、少し問題が発生しています。列 C の値が 40000 より大きいか -40000 より小さい場合 (これらはデータの外れ値です)、行全体を削除する必要があります。データのリストは数千行に及ぶため、列 C のデータが終了するまでアクションを続行する必要があります。どんな助けでも素晴らしいでしょう!

4

2 に答える 2

3

このコードは、列のすべてのセルを反復処理し、C値が指定した範囲外の行を削除します

Sub DeleteRows()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Dim i As Long
    For i = Range("C" & Rows.Count).End(xlUp).Row To 1 Step -1
        If Not (Range("C" & i).Value > -40000 And Range("C" & i).Value < 40000) Then
            Range("C" & i).EntireRow.Delete
        End If
    Next i
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub
于 2013-07-23T15:53:52.523 に答える
1

一方通行;

dim rows as Range, cell as Range, value As long

set cell = Range("c1")
do until cell.value = ""
    value = val(cell.value)
    if (value < -40000 or value > 40000) then
        if rows is Nothing then
            set rows = cell.EntireRow
        else
            set rows = Union(cell.EntireRow, rows)
        end if
    end if
    set cell = cell.Offset(1)
loop

if not rows is Nothing then rows.Delete
于 2013-07-23T15:50:36.243 に答える