1つの条件に基づいて1000/10000の行を削除したいが時間がかかり過ぎる。また、私は、この操作を行うには、より高速な方法を提案してくださいExcelで行を削除する時間を最適化する
などのタイマーを設定し、Application.ScreenUpdating = False
、
Private Sub Remove_incomplete_records_Click()
Dim n, count As Integer
Dim i As Long
Dim lastrownum As Integer
lastrownum = Sheets("Master_Data").Cells(Rows.count, 1).End(xlUp).Row
Dim varCalcmode
Do While (lastrownum)
Application.ScreenUpdating = False
'for NB,FO etc if field your refernence is not present then delete the entire row.
For i = 2 To lastrownum
If (Sheets("Master_Data").Cells(i, 2).Value <> "YC" And Sheets("Master_Data").Cells(i, 2).Value <> "YK" And Sheets("Master_Data").Cells(i, 2).Value <> "MK" And Cells(i, 2).Value <> "WK" And Sheets("Master_Data").Cells(i, 2).Value <> "AN") Then
If (Sheets("Master_Data").Cells(i, 4).Value = "") Then
On Error Resume Next
Sheets("Master_Data").Rows(i).EntireRow.Delete Shift:=xlUp
varCalcmode = Application.Calculation
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Else
End If
Else
End If
Next i
Loop
Application.Calculation = varCalcmode
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
をインターネット上で利用可能なすべてのソリューション、すなわちデータをフィルタ処理を試してみました。
最後の行から上方への作業は、最適化を実装するための安価です。 – Bathsheba