列Aから空の行を取り出し、行全体を削除する次のコードがあります。 2007年には上限が約8000の連続していない行があるため、特殊 - >ブランク - >シート行削除機能を2010年に使用することはできませんでした。このコードはいくつかの古いマシンでは非常に遅く、終了するのに約40分かかります(しかし、その仕事をします)。これにはもっと速い選択肢がありますか?Excel 2007の列Aの空の行を削除します。
Private Sub Del_rows()
Dim r1 As Range, xlCalc As Long
Dim i As Long, j As Long, arrShts As Variant
With Application
xlCalc = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
arrShts = VBA.Array("Sheet1") 'add additional sheets as required
For i = 0 To UBound(arrShts)
With Sheets(arrShts(i))
For j = .UsedRange.Rows.Count To 2 Step -8000
If j - 7999 < 2 Then
.Range("A2:A" & j).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Else
.Range("A" & j, "A" & j - 7999).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End If
Next j
End With
Next i
Application.Calculation = xlCalc
これはExcel 2007で動作しますか?私は、2007年には約8000個の連続していない行の制限があるため尋ねます。 – rvphx
はい、このコードはすべてのバージョンで動作するはずです。 1つのブロックですべての行を削除できるようにシートをソートするだけです。 –
うわー。それは魅力のように機能します!私はこのコードを私のスプレッドシートに適用します。カスタムタグ(不要なテキスト)があるので、このコードを入れる前に削除する必要があります。 – rvphx