返回列表 上一主題 發帖

VBA刪除固定列數

VBA刪除固定列數

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

刪除固定列,
1~16列
59~74列
117~132列
.
.
.
資料前面16列要刪除,58列為一個區間,請問VBA如何寫
samwang 發表於 2013-10-31 08:54
  1. Sub Ex()
  2.     With Sheets(1)
  3.         .Range("A117:A132").EntireRow.Delete
  4.         .Range("A59:A74").EntireRow.Delete
  5.        .Range("A1:A16").EntireRow.Delete
  6.     End With
  7. End Sub
複製代碼

TOP

回復 2# c_c_lai

    謝謝您的回覆,資料有上千筆,請問如何做

TOP

回復 3# samwang
先說說你對此案的處理方案!

TOP

回復 4# c_c_lai


   我從我們的server download 資料,資料會有上千筆,但是前面的16列是沒有用的,接著42列是有用的,一直重複的結束
現在我是用手動去刪除一筆筆逐一刪除很耗時,想用VBA解決,謝謝

TOP

回復  c_c_lai


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

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

TOP

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

TOP

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

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

回復  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

        靜思自在 : 有願放在心裡,沒有身體力行,正如耕田不播種,皆是空過因緣。
返回列表 上一主題