返回列表 上一主題 發帖

[發問] 如何刪除帶有合併欄的資料區塊

本帖最後由 stillfish00 於 2013-6-7 16:38 編輯

回復 1# luke
土法煉鋼,參考看看
其實跟有沒有合併欄好像沒啥關係
  1. Sub test()
  2.     Dim r As Long, i As Long, ar
  3.     Dim rngDelete As Range
  4.    
  5.     With Sheets("sheet1")
  6.         '先整理A~E
  7.         r = Application.WorksheetFunction.Max( _
  8.             .Cells(.Rows.Count, "A").End(xlUp).Row, _
  9.             .Cells(.Rows.Count, "B").End(xlUp).Row, _
  10.             .Cells(.Rows.Count, "E").End(xlUp).Row)
  11.         With .Range("A1:E1").Resize(r)
  12.             ar = .Value
  13.             For i = 1 To UBound(ar)
  14.                 If ar(i, 1) = "" Then
  15.                     If rngDelete Is Nothing Then
  16.                         Set rngDelete = .Cells(i, 1).Resize(, .Columns.Count)
  17.                     Else
  18.                         Set rngDelete = Union(rngDelete, .Cells(i, 1).Resize(, .Columns.Count))
  19.                     End If
  20.                 End If
  21.             Next
  22.             If Not rngDelete Is Nothing Then
  23.                 rngDelete.Delete Shift:=xlUp
  24.                 Set rngDelete = Nothing
  25.             End If
  26.         End With
  27.         '同樣步驟,整理F~J
  28.         r = Application.WorksheetFunction.Max( _
  29.             .Cells(.Rows.Count, "F").End(xlUp).Row, _
  30.             .Cells(.Rows.Count, "G").End(xlUp).Row, _
  31.             .Cells(.Rows.Count, "J").End(xlUp).Row)
  32.         With .Range("F1:J1").Resize(r)
  33.             ar = .Value
  34.             For i = 1 To UBound(ar)
  35.                 If ar(i, 1) = "" Then
  36.                     If rngDelete Is Nothing Then
  37.                         Set rngDelete = .Cells(i, 1).Resize(, .Columns.Count)
  38.                     Else
  39.                         Set rngDelete = Union(rngDelete, .Cells(i, 1).Resize(, .Columns.Count))
  40.                     End If
  41.                 End If
  42.             Next
  43.             If Not rngDelete Is Nothing Then
  44.                 rngDelete.Delete Shift:=xlUp
  45.                 Set rngDelete = Nothing
  46.             End If
  47.         End With
  48.     End With
  49.    
  50. End Sub
複製代碼

TOP

        靜思自在 : 【行善要及時】行善要及時,功德要持續。如燒開水一般,未燒開之前千萬不要停熄火候,否則重來就太費事了。
返回列表 上一主題