返回列表 上一主題 發帖

VBA刪除固定列數

VBA刪除固定列數

刪除固定列,
1~16列
59~74列
117~132列
.
.
.
資料前面16列要刪除,58列為一個區間,請問VBA如何

謝謝大大的解說

TOP

回復 11# luhpro


    謝謝大大幫忙,測試沒問題

TOP

回復 9# georgema


    因為無用的資料16列中有些空格,所以程式無法執行,

TOP

刪除固定列,
1~16列
59~74列
117~132列
.
.
.
資料前面16列要刪除,58列為一個區間,請問VBA如何寫
samwang 發表於 2013-10-31 08:54

不管你原稿有幾列都適用 : (可用空表測試, 只要 A1=1 然後遞增儲存格內值到想要的列數, 再跑此程式即可知結果)
  1. Sub NN()
  2.   Dim lRows&
  3.   
  4.   lRows = 1
  5.   Do While Cells(lRows, 1) <> ""
  6.     Rows(lRows & ":" & lRows + 15).Delete
  7.     lRows = lRows + 42
  8.   Loop
  9. End Sub
複製代碼

TOP

回復  c_c_lai
是的,只能手動逐一刪除資料
samwang 發表於 2013-10-31 15:57

只要將以下程式碼套入到你的程式內就 OK 了!
  1.     With Sheets(1)
  2.         '  由最底逐步往上刪除 Rows 便不會亂掉了!
  3.         .Range("A117:A132").EntireRow.Delete
  4.         .Range("A59:A74").EntireRow.Delete
  5.        .Range("A1:A16").EntireRow.Delete
  6.     End With
複製代碼

TOP

請試試看下列程式:
  1. Sub delRows()
  2.     Dim i&, j&, x%, y%
  3.     j = Range("a1").End(xlDown).Row
  4.     MsgBox "j = " & j
  5.     j = j / 42
  6.     MsgBox "New j = " & j
  7.     x = 1
  8.     y = 16
  9.     For i = 1 To j
  10.         If i = 1 Then
  11.             Rows(x & ":" & y).Select
  12.             Selection.Delete Shift:=xlUp
  13.         Else
  14.             x = x + 42
  15.             y = y + 42
  16.             Rows(x & ":" & y).Select
  17.             Selection.Delete Shift:=xlUp
  18.         End If
  19.     Next i
  20. End Sub
複製代碼
George Ma

TOP

要由下 往上刪除  row  才不會跑掉

TOP

回復 6# c_c_lai
是的,只能手動逐一刪除資料

TOP

回復  c_c_lai


   我從我們的server download 資料,資料會有上千筆,但是前面的16列是沒有用的,接著 ...
samwang 發表於 2013-10-31 11:06

你的意思是說,在每一次從 server download 資料,資料會有上千筆,但是前面的16列是固定沒有用的,接著42列 (17 ~ 58) 是有用的?
如此不停地以此原則固定去處理 download 的資料錄?

TOP

        靜思自在 : 為自己找藉口的人永遠不會進步。
返回列表 上一主題