標題:
[發問]
如何刪除帶有合併欄的資料區塊
[打印本頁]
作者:
luke
時間:
2013-6-6 07:11
標題:
如何刪除帶有合併欄的資料區塊
本帖最後由 luke 於 2013-6-6 07:13 編輯
各位大大
1.[Sheet1表]的「A:J欄」為不規則資料區, 其中部分欄位帶有一些合併的欄位
如「B:D欄」和「G:I欄」, 約有100列(包含空白資料列).
2.如何先刪除整列空白資料列, 然後自A欄及(/或)F欄儲存格為空白值(無資料)中,
去做刪除「A:E欄」和「F:J欄」資料區塊, 如附檔[sheet1結果]表所示:
VBA應如何寫出來
煩請先進 大大指導
[attach]15182[/attach]
作者:
stillfish00
時間:
2013-6-7 16:28
本帖最後由 stillfish00 於 2013-6-7 16:38 編輯
回復
1#
luke
土法煉鋼,參考看看
其實跟有沒有合併欄好像沒啥關係
Sub test()
Dim r As Long, i As Long, ar
Dim rngDelete As Range
With Sheets("sheet1")
'先整理A~E
r = Application.WorksheetFunction.Max( _
.Cells(.Rows.Count, "A").End(xlUp).Row, _
.Cells(.Rows.Count, "B").End(xlUp).Row, _
.Cells(.Rows.Count, "E").End(xlUp).Row)
With .Range("A1:E1").Resize(r)
ar = .Value
For i = 1 To UBound(ar)
If ar(i, 1) = "" Then
If rngDelete Is Nothing Then
Set rngDelete = .Cells(i, 1).Resize(, .Columns.Count)
Else
Set rngDelete = Union(rngDelete, .Cells(i, 1).Resize(, .Columns.Count))
End If
End If
Next
If Not rngDelete Is Nothing Then
rngDelete.Delete Shift:=xlUp
Set rngDelete = Nothing
End If
End With
'同樣步驟,整理F~J
r = Application.WorksheetFunction.Max( _
.Cells(.Rows.Count, "F").End(xlUp).Row, _
.Cells(.Rows.Count, "G").End(xlUp).Row, _
.Cells(.Rows.Count, "J").End(xlUp).Row)
With .Range("F1:J1").Resize(r)
ar = .Value
For i = 1 To UBound(ar)
If ar(i, 1) = "" Then
If rngDelete Is Nothing Then
Set rngDelete = .Cells(i, 1).Resize(, .Columns.Count)
Else
Set rngDelete = Union(rngDelete, .Cells(i, 1).Resize(, .Columns.Count))
End If
End If
Next
If Not rngDelete Is Nothing Then
rngDelete.Delete Shift:=xlUp
Set rngDelete = Nothing
End If
End With
End With
End Sub
複製代碼
作者:
Hsieh
時間:
2013-6-7 18:56
回復
1#
luke
Sub ex()
Application.ScreenUpdating = False
For i = 1 To 6 Step 5
For j = Cells(Rows.Count, i).End(xlUp).Row To 1 Step -1
If Cells(j, i) = "" Then Cells(j, i).Resize(, 5).Delete xlShiftUp
Next
Next
Application.ScreenUpdating = True
End Sub
複製代碼
作者:
luke
時間:
2013-6-7 22:07
回復
2#
stillfish00
回覆stillfish00
謝謝您再次協助
以上
作者:
luke
時間:
2013-6-7 22:10
回復
3#
Hsieh
感謝超版幫忙
以下是碰到問題:
因[Sheet1表]的「A:J欄」是【人為】清除造成不規則資料區,
本例若「A欄」或「F欄」有空白值如『A15』、『F15』、『F16』和『F17』儲存格
就會有錯誤如圖所示:
應如何修改語法
[attach]15200[/attach]
作者:
lilytracy
時間:
2013-6-8 06:25
本帖最後由 lilytracy 於 2013-6-8 06:30 編輯
回復
5#
luke
此語法Application.ScreenUpdating = False後, 加一句
Range("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)