Board logo

標題: 請教vba [打印本頁]

作者: speed    時間: 2016-5-15 15:25     標題: 請教vba

新手一名
未命名.jpg

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

圖片附件: 未命名.jpg (2016-5-15 15:24, 96 KB) / 下載次數 170
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 編輯
  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
作者: supergag    時間: 2016-5-16 15:25

本帖最後由 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
作者: speed    時間: 2016-5-16 16:25

如果我空白果度有FORMULA 就用唔到果代碼? 可以點整
作者: supergag    時間: 2016-5-17 00:08

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



有野係入面點認呢...

暫時諗到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 編輯
回覆  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
複製代碼

作者: speed    時間: 2016-5-17 12:35

回覆 7# ed1


THX CHING





歡迎光臨 電腦領域 HKEPC Hardware (https://h0.hkepc.com/forum/) Powered by Discuz! 7.2