返回列表 上一主題 發帖

[發問] excel vba語法:刪除K欄為空白之列

[發問] 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清除資料內容

謝謝

回復 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
複製代碼

TOP

回覆owen06大大
列會一直新增下去,不只9列,共有幾列是未知數
所以無法使用For i = 9 to 1

TOP

回復 2# owen06

回覆owen06大大
列會一直新增下去,不只9列,「共有幾列」是「變數」
所以無法使用For i = 9 to 1

TOP

回復 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 物件。
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

http://blog.xuite.net/hcm19522/twblog/359026428
參考

TOP

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

TOP

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

TOP

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

TOP

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

TOP

        靜思自在 : 吃苦了苦、苦盡廿來,享福了福、福盡悲來。
返回列表 上一主題