請教vba

新手一名
未命名.jpg
2016-5-15 15:24


請問vba點樣整到可以將空白的行del

本帖最後由 hkoj 於 2016-5-15 22:58 編輯
  1. Sub DeleteBlankRows2()

  2. 'Deletes the entire row within the selection if _

  3. On Error Resume Next

  4. Selection.EntireRow.SpecialCells(xlBlanks).EntireRow.Delete

  5. On Error GoTo 0

  6. End Sub
複製代碼
google 搵, 選A column再執行,  試過work

TOP

本帖最後由 supergag 於 2016-5-16 15:26 編輯
  1. Sub test()
  2. ThisWorkbook.Worksheets(1).Range("A:A").EntireRow.SpecialCells(xlBlanks).EntireRow.Delete
  3. End Sub
複製代碼
Worksheets內既係第幾張sheet,左至右係由1開始
Range內既A:A係邊一行,B行就改哂做B

TOP

如果我空白果度有FORMULA 就用唔到果代碼? 可以點整

TOP

本帖最後由 supergag 於 2016-5-17 00:10 編輯
如果我空白果度有FORMULA 就用唔到果代碼? 可以點整
speed 發表於 2016-5-16 16:25



有野係入面點認呢...

暫時諗到sort左非空白出黎再copy,一係就copy一次之後貼上值係第二行度再做

TOP

回覆 5# supergag


我試過呢, 如果用函數整的空白, eg IF(A1="","") 睇上去係空白,但有公式係度,就用唔到上面的vba, 就算copy 另頁value都唔當係空白

TOP

本帖最後由 ed1 於 2016-5-17 11:53 編輯
回覆  supergag


我試過呢, 如果用函數整的空白, eg IF(A1="","") 睇上去係空白,但有公式係度,就用唔到 ...
speed 發表於 2016-5-17 10:00


用先用這vba clearcontent 方法clear 所有 睇上去係空白,eg:IF(A1="","") 為真正空白,再用delete blank row 既 vba
  1. Sub ClearCell()
  2.     Dim Rng As Range
  3.     Set Rng = ActiveSheet.Range("A1")

  4.     Dim i As Long
  5.     For i = 1 To 100
  6.         If Rng.Cells(i,1) = "" Then
  7.            Rng.Cells(i,1).ClearContents
  8.         End If
  9.     Next i
  10. End Sub
複製代碼
綜合change to real blank cell and delete blank row ,HIGHLIGHT COLUMN A and run vba
  1. Sub DeleteRow()
  2. Application.ScreenUpdating = False
  3.   Application.Calculation = xlCalculationManual

  4.     Dim rng As Range
  5.     Set rng = ActiveSheet.Range("A1")

  6.     Dim i , ix As Long
  7.     For i = 1 To 100
  8.         If rng.Cells(i, 1) = "" Then
  9.            rng.Cells(i, 1).ClearContents
  10.         End If
  11.     Next i

  12.   
  13.   Set rng = Intersect(Selection, ActiveSheet.UsedRange)
  14.   If rng Is Nothing Then
  15.          GoTo done
  16.   End If
  17.   For ix = rng.Count To 1 Step -1
  18. If Len(Trim(Replace(rng.Item(ix).Formula, Chr(160), ""))) _
  19.          = 0 Then rng.Item(ix).Delete (xlUp)
  20.   Next
  21. done:
  22.   Application.Calculation = xlCalculationAutomatic
  23.   Application.ScreenUpdating = True
  24. End Sub
複製代碼

TOP

回覆 7# ed1


THX CHING

TOP