上柱A的空行我有下面的代碼段,在空行需要從列A,然後刪除該整行。我無法使用2010年的Special - > Blanks - > Delete Sheet Rows功能,因爲2007的上界約有8000個非連續行。這些代碼在一些較舊的機器上速度非常慢,大約需要40分鐘才能完成(但完成這項工作)。有沒有更快的選擇呢?刪除在Excel 2007
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 2012-03-14 14:16:34
是的,這個代碼應該適用於所有版本。它只是對錶單進行排序,以便可以在一個塊中刪除所有行。 – 2012-03-14 14:29:02
哇。這就像一個魅力!我將在電子表格中調整此代碼,因爲在此處存在一些自定義標記(不需要的文本),在我放入此代碼之前需要刪除這些標記。 – rvphx 2012-03-14 14:48:01