若是資料中有空白行,可沒有辦法使用篩選、排序等一系列很有用的功能呢。

若是有大量的資料,一行行刪除也太麻煩了吧,也容易誤操作。

此時就是一個很好的可以利用巨集的情況。

(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之後可以好好偷懶了):

 

4ngus 發表在 痞客邦 留言(0) 人氣()