作者: speed 時間: 2016-5-15 15:25 標題: 請教vba
新手一名
請問vba點樣整到可以將空白的行del
https://h0.hkepc.com/forum/attachment.php?aid=1889352&k=67aede2190f2812ce3cd4133244a2b7b&t=1781595751&sid=uKce9dg8TU

作者: hkoj 時間: 2016-5-15 22:53
本帖最後由 hkoj 於 2016-5-15 22:58 編輯
- Sub DeleteBlankRows2()
- 'Deletes the entire row within the selection if _
- On Error Resume Next
- Selection.EntireRow.SpecialCells(xlBlanks).EntireRow.Delete
- On Error GoTo 0
- End Sub
作者: supergag 時間: 2016-5-16 15:25
本帖最後由 supergag 於 2016-5-16 15:26 編輯
- Sub test()
- ThisWorkbook.Worksheets(1).Range("A:A").EntireRow.SpecialCells(xlBlanks).EntireRow.Delete
- End Sub
Range內既A:A係邊一行,B行就改哂做B
作者: speed 時間: 2016-5-16 16:25
如果我空白果度有FORMULA 就用唔到果代碼? 可以點整
作者: supergag 時間: 2016-5-17 00:08
本帖最後由 supergag 於 2016-5-17 00:10 編輯
有野係入面點認呢...
暫時諗到sort左非空白出黎再copy,一係就copy一次之後貼上值係第二行度再做
作者: speed 時間: 2016-5-17 10:00
回覆 5# supergag
我試過呢, 如果用函數整的空白, eg IF(A1="","") 睇上去係空白,但有公式係度,就用唔到上面的vba, 就算copy 另頁value都唔當係空白
作者: ed1 時間: 2016-5-17 11:37
本帖最後由 ed1 於 2016-5-17 11:53 編輯
用先用這vba clearcontent 方法clear 所有 睇上去係空白,eg:IF(A1="","") 為真正空白,再用delete blank row 既 vba
- Sub ClearCell()
- Dim Rng As Range
- Set Rng = ActiveSheet.Range("A1")
- Dim i As Long
- For i = 1 To 100
- If Rng.Cells(i,1) = "" Then
- Rng.Cells(i,1).ClearContents
- End If
- Next i
- End Sub
- Sub DeleteRow()
- Application.ScreenUpdating = False
- Application.Calculation = xlCalculationManual
- Dim rng As Range
- Set rng = ActiveSheet.Range("A1")
- Dim i , ix As Long
- For i = 1 To 100
- If rng.Cells(i, 1) = "" Then
- rng.Cells(i, 1).ClearContents
- End If
- Next i
-
- Set rng = Intersect(Selection, ActiveSheet.UsedRange)
- If rng Is Nothing Then
- GoTo done
- End If
- For ix = rng.Count To 1 Step -1
- If Len(Trim(Replace(rng.Item(ix).Formula, Chr(160), ""))) _
- = 0 Then rng.Item(ix).Delete (xlUp)
- Next
- done:
- Application.Calculation = xlCalculationAutomatic
- Application.ScreenUpdating = True
- End Sub
作者: speed 時間: 2016-5-17 12:35
回覆 7# ed1
THX CHING


