看板 Office 關於我們 聯絡資訊
軟體: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