[爆卦]vba刪除空白字元是什麼?優點缺點精華區懶人包

為什麼這篇vba刪除空白字元鄉民發文收入到精華區:因為在vba刪除空白字元這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者maxmnbqq (Max)看板Office標題[問題] 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
6 v v v v v v
7 v v v v
8 v
9 v v v v v v v

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

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

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

謝謝

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.105.195.214
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1448113190.A.0F9.html
※ 編輯: maxmnbqq (106.105.195.214), 11/21/2015 21:47:05
※ 編輯: maxmnbqq (106.105.195.214), 11/21/2015 21:49:45
newton41: Rows(i).delete shift:=xlup 11/21 22:18
soyoso: 可用for..next,由下而上step -1 11/21 22:19
soyoso: 有標題列則用range.autofilter篩選 11/21 22:21
soyoso: 配合range.specialcells內的可見儲存格 11/21 22:22
soyoso: 就可不用迴圈,一次刪除 11/21 22:23
soyoso: 但留意要保留標題列的話要用range.size及range.offset將要 11/21 22:24
soyoso: 刪除下移縮小 11/21 22:25
soyoso: 用for..next內為if range("k" & 變數名稱) ="" then 11/21 22:29
soyoso: rows(變數名稱).delete 11/21 22:29
soyoso: then後接或加上:接rows.delete則不用end if,如無請加上 11/21 22:34
補充說明:「列」會一直新增下去,所以共有幾列是變數
很感謝樓上大大的指教,但是我看不太懂......
※ 編輯: maxmnbqq (106.105.195.214), 11/21/2015 22:57:26
soyoso: 要抓最下方的列,用range.end 11/21 22:58
soyoso: 補充上方為可抓最下方的儲存格,如要列號請後面加上.row 11/21 23:06
soyoso: 再提供另一個方式 11/21 23:27
soyoso: range("k1:k9").specialcells(4).entirerow.delete 11/21 23:27
soyoso: k9的9要變數就在用range.end().row的方式取得 11/21 23:28
soyoso: 就不用篩選、迴圈了 11/21 23:29
soyoso: 上述要正確抓取的話k1:k9要為empty(uninitialized),如為 11/21 23:49
soyoso: 字串string就無法了 11/21 23:49
soyoso大大好強!!
請問k9的9要變數,語法為? 上面的解釋看不太懂
另外,specialcells(4)的4是什麼意思?

使用現況
目前共有17815列,使用排序後,最後不為空白=16336列
16337列開始至17815列為空白
使用rnage(k1:k17815).specialcells(4).entirerow.delete
16337~17815列被刪除,但是16336列非空白,也被刪除

補充說明:K欄位為日期,例如2015/10/10
謝謝
※ 編輯: maxmnbqq (106.105.195.214), 11/21/2015 23:52:25
※ 編輯: maxmnbqq (106.105.195.214), 11/21/2015 23:55:53
soyoso: google range.specialcells 就可查到4的常數是什麼了 11/22 00:00
※ 編輯: maxmnbqq (106.105.195.214), 11/22/2015 00:03:43
soyoso: 9要變數google range.end xlup 11/22 00:03
soyoso: 回文rnage是錯的,是range http://imgur.com/VQsv3Qn 11/22 00:07
不小心打錯字
對不起,我看錯了,16336列的K欄位是空白,所以當然會被刪掉
※ 編輯: maxmnbqq (106.105.195.214), 11/22/2015 00:14:38
※ 編輯: maxmnbqq (106.105.195.214), 11/22/2015 00:16:16
soyoso: 這要看實際檔案了 11/22 00:15
soyoso: 了解^^ 11/22 00:16
回soyoso大大,我查不到k9的9如何用變數
所以我直接使用excel 2013最後一列的數字1048576
range(k1:k1048576).specialcells(4).entirerow.delete
一樣可以用
太感謝你了^^
※ 編輯: maxmnbqq (106.105.195.214), 11/22/2015 00:57:54

你可能也想看看

搜尋相關網站