Board logo

標題: [發問] excel vba語法:刪除K欄為空白之列 [打印本頁]

作者: maxmnbqq    時間: 2015-11-21 21:57     標題: excel vba語法:刪除K欄為空白之列

軟體:Excel

版本:2013

「第k欄」為空白者的「列」一律刪除

這個VBA的語法要怎麼寫?

例如

表格如下:

  A B C D E F G H I J  K
1 v v v v v v v v v v
2 v v v v v v v v v v    v
3 v v v v v v   v           
4 v                                 
5 v   v   v v   v   v v      v
6 v v v v         v   v       v
7 v     v       v     v          v
8 v     v  v              v  
9 v v v v       v   v v      v

第1, 3, 4, 8列的K欄位 = 空白

所以第1, 3, 4, 8整列的所有資料「刪除」,讓整列儲存格消失後,

下面的資料自動往上移,不是按delete清除資料內容

謝謝
作者: owen06    時間: 2015-11-21 22:04

回復 1# maxmnbqq

試試
  1. Sub test()
  2. For i = 9 To 1 Step -1
  3. If Cells(i, 11) = 0 Then
  4.   Cells(i, 11).EntireRow.Delete
  5. End If
  6. Next
  7. End Sub
複製代碼

作者: maxmnbqq    時間: 2015-11-21 22:49

回覆owen06大大
列會一直新增下去,不只9列,共有幾列是未知數
所以無法使用For i = 9 to 1
作者: maxmnbqq    時間: 2015-11-21 23:01

回復 2# owen06

回覆owen06大大
列會一直新增下去,不只9列,「共有幾列」是「變數」
所以無法使用For i = 9 to 1
作者: GBKEE    時間: 2015-11-22 07:38

回復 4# maxmnbqq
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     'With Range("a1:m50").Columns(11)  '範圍的第幾欄
  4.      With Range("a1:m50").Columns("k:k")  '範圍的第k欄
  5.         If .Cells.Count <> Application.Count(.Cells) Then
  6.             .SpecialCells(xlCellTypeBlanks).EntireRow.Delete xlUp
  7.         End If
  8.     End With
  9. End Sub
複製代碼
  1. SpecialCells 方法  特定傳回 Range 物件,此物件代表與指定型態及值相符合的所有儲存格。Range 物件。
複製代碼

作者: hcm19522    時間: 2015-11-22 11:35

http://blog.xuite.net/hcm19522/twblog/359026428
參考
作者: 准提部林    時間: 2015-11-22 17:34

Sub TEST()
On Error Resume Next '略過找不到空白格的錯誤
[K:K].SpecialCells(xlCellTypeBlanks).EntireRow.Delete '取得空白格(公式產生的""不算), 刪除
On Error GoTo 0 '恢復偵錯功能
End Sub
作者: jukom    時間: 2015-11-25 11:26

Sub aanb()

Csh = ActiveSheet.UsedRange.Rows.Count      '以 整個SHEET最後一筆資料
For i = Csh To 2 Step -1   '從最後面開始作業
If Cells(i, 11) = "" Then Rows(i).Delete  '如果空白則刪除

Next

End Sub
作者: c_c_lai    時間: 2015-11-26 06:49

回復 1# maxmnbqq
其實答案就在 GBKEE 以及 准提部林 兩位版主的回覆內文中:
  1. [K:K].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
複製代碼

作者: shaokui123    時間: 2015-12-14 23:18

在k列定位,选择空值,然后删除选择删除行,录制一个宏看看哦




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)