若是資料中有空白行,可沒有辦法使用篩選、排序等一系列很有用的功能呢。
若是有大量的資料,一行行刪除也太麻煩了吧,也容易誤操作。
此時就是一個很好的可以利用巨集的情況。
(VBA困難戶福音: 本文下方也有免用VBA達到同樣功能的方法哦~直達)
假設我需要處理的資料是這樣的:
選取某列(e.x. 3):
rows(3).select
刪除某列(e.x. 3):
rows(3).select
selection.delete
/
rows(3).delete
刪除空白列(e.x. 3)[如果A3為空,則刪除該列]:
if range(A3).value="" then
rows(3).delete
end if
條件函數
if [條件判斷] then
[判斷為是則做這條運算式]
else
[判斷為否則做這條運算式]
end if
所有空白的列都需要刪除(假設有50行、即要做50次):
for i=1 to 50
if range("A" & i).value="" then 'i隨循環的次數而增大,為列數
rows(i).delete
end if
Next
循環函數
for [變量]=[起始值] to [終止值] step [間隔](默認1)
[運算式]
Next
但由於刪除列數後表格會整體上移,雖然測試數次暫時沒有出錯,但更穩妥的方法是從下至上刪除:
for i=50 to 1 step -1
if range("A" & i).value="" then 'i隨循環的次數而增大,為列數
rows(i).delete
end if
Next
如何錄製巨集在應用(1)中有提到,有需要的可前往查看:[VBA]Excel巨集的應用(1)--巨集的認識與初始置
Excel中的顯示與代碼
結果:
[免用VBA]刪除資料中的空白行-2019.08.08更新
有人可能會問,竟然要寫代碼來刪除空白行?
上面只是一個VBA的例子,所以才會殺雞用牛刀,
其實某君只需簡單三步就可以完美取代!(P.S. 用VBA寫還是很有好處的,如果這項功能是不斷重用的話,但如果只是單純用一次的話,某君連VBA都懶得打開!!)
這方法某君用很久了,今天看到同事逐行刪除空白行,才想到順便寫個教程,
要是早就會的話,可以直接略過,勿要拍磚哦~
方法就是借用篩選啦啦啦!!!
如果資料本身是醬紫的:
Step 1: 隨便填充一些資料定位 (資料是什麼無所謂,事後會刪除的)
因為空白行、空白格會讓excel誤以為當前表格已結束,無法做篩選,這也是我們要刪除空白行的主要原因,
所以我們需要隨便填充一些資料定位,告訴excel這個表格的第一行和最後一行在哪裡
Step 2: 篩選出所有空格(/空行)
Step 3: 刪除!完成!!
超簡單的!是不是?!
因為某君太懶的緣故,上面的圖片跳步了
如果沒有看懂的話可以看下面的GIF(有了GIF之後可以好好偷懶了):
留言列表