VBA如何設置迴圈將多餘資料刪除 - 會計

Ophelia avatar
By Ophelia
at 2019-04-14T19:52

Table of Contents


VBA如何設置迴圈將多餘資料刪除

網誌圖文版:

https://www.b88104069.com/archives/4376

綜合本書到目前為止的內容,可知利用Excel取得網頁資料並不難,麻煩的是整批量下載
的內容,於工作表上會有很多不必要的東西,例如重覆的標題行和與核心資料無關的訊息
,所幸於整理資料表這方面,Excel剛好是專家,再搭配VBA可以達到很高效率的作業。這
一節便以歷史匯率為範例,介紹如何適當地刪除多餘的資料。

一、結合第三節利用「QueryTables.Add」取得網頁匯率的程式碼、和上一節利用「
Application.InputBox」輸入年份幣別的方法,編寫VBA程式碼如圖所示。

二、執行程式,選擇2016年的港幣(HKD)。為了方便截圖,直接取得的資料在格式上已經
先調整了欄寛,並且把日期隱藏起來,但是有兩個問題,一個是圖片綠色部份,標題欄位
的格式跑掉了,另一個是圖片黃色部份,在不同月份之間會有空行存在。

三、編寫刪除空白行的程式碼,意思是找出A欄中,儲存格特殊狀態為空白的對象物件,
然後執行刪除整行的方法。這一行程式碼為慣常用法,看起來有點複雜,但一經拆解,其
實在架構上仍然是「物件.方法」的標準VBA語法。

四、執行「DeleteRows」巨集程式,結果如圖所示,原本黃色部份的空行、包括一部份綠
色A欄為空格,整行都被刪除了,不過仍然有多餘的標題欄存在。

五、不同版本的Excel最大行數也不同,以作者2013年的Office而言,在任一工作表,按
住「Ctrl」鍵再按方向鍵「下」,直接跳到最後一行,如圖所示為「1048576」,這便是
目前Excel最大行數。如果想要針對整張工作表作整理,例如刪除含某特定內容儲存格所
在的行,首先必須先知道最大行數。

六、編寫程式如圖所示,設置以i為變數的迴圈,從「1048576」到「2」,「Step -1」表
示為遞減順序,保留第一行,是因為第一行應當為標題欄。在迴圈裡設計儲存格內容的判
斷式,滿足條件時刪除第i行(Rows(i).Delete)。

七、執行結果如同預期,成功將其他多餘的資料都刪除了,只保留匯率的部份,截圖是每
個月顯示三天,其餘隱藏,另外也手工修改了標題欄。

這一節介紹兩種方法刪除資料,其一是刪除空行,其二是刪除特定內容的整行。依照範例
程式碼,必須兩個方法的巨集都執行過,才能預期的效果。其實如果理解了刪除特定內容
的程式碼精髓,在程式設上可以很靈活,設計出一次到位的程序,擴大而言,視不同網頁
的結構狀況,以類似程式設計,都可以在下載資料的同時,把多餘不必要的內容刪除掉。
在本書後面的章節,會再針對其他網頁分享如何整理所取得的資料。


延伸閱讀:

VBA如何依照所選擇年份幣別設定網址

https://www.b88104069.com/archives/4371

VBA如何批次取得網頁資料

https://www.b88104069.com/archives/4366

VBA如何取得網頁資料時自動整理格式

https://www.b88104069.com/archives/4362

--


周末,我們繼續Excel:精華區=>21.心得=>5.其他=>3.office

會計人的Excel小教室: https://www.facebook.com/acctexcel


--
Tags: 會計

All Comments

徵求名師108中會函授課程含講義

William avatar
By William
at 2019-04-14T10:32
站內信報價 感謝~ ----- Sent from JPTT on my Xiaomi Redmi Note 5. - ...

中會 投資

Jessica avatar
By Jessica
at 2019-04-14T09:34
想請問這題答案為什麼是D?下面是我寫的分錄!謝謝 麻煩了! https://i.imgur.com/AGXWPmc.jpg https://i.imgur.com/9nC5Kso.jpg - ...

營業週期

Carol avatar
By Carol
at 2019-04-13T22:01
請問 公司正常營業週期為14個月,期末資產負債表上有13個月後到期之借 款(購買廠房貸款)100000,則該貸款列於流動負債 請問為何上面的敘述是錯誤的? 我的想法 在營業週期內,應當算流動負債 - ...

中會 長期工程合約

Candice avatar
By Candice
at 2019-04-13T20:47
想請問這題105年的分錄要怎麼做,謝謝麻煩了!! https://i.imgur.com/ey4EcQS.jpg - ...

企管系跨考會研所心得 (代PO)

Kama avatar
By Kama
at 2019-04-13T18:12
一、背景 中央企管系 系排30% 多益920 由於自己非會計本科生,擔心考不過會計系學生,所以在暑假上正課時同時準備推甄。推 甄後繼續準備考試。 二、成績單 政大(考試)/成大(推甄)/中央(推甄) https://i.imgur.com/GcBQuxQ.jpg 三、準備過程 2~6月 有空時線上聽 ...