我是 VBA for excel 的新手,我遇到了一个小问题。如果 C 列中的值大于 40000 或小于 -40000(这些是数据异常值),我必须删除整行。数据列表长达数千行,因此我需要继续执行该操作,直到 C 列中的数据结束。任何帮助都会很棒!
问问题
23089 次
2 回答
3
此代码将遍历 Column 中的所有单元格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 回答