【Excel VBA網路爬蟲】InputBox方法 - 會計

Charlotte avatar
By Charlotte
at 2020-05-11T22:01

Table of Contents


【Excel VBA網路爬蟲】整理好央行網址儲存格清單,InputBox方法取得金融資訊

網誌圖文版:

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

上一節介紹InputBox函數網路爬蟲,執行巨集時可能要開瀏覽器網頁複製網址,本節進一
步InputBox方法,先在Excel整理好網址表格清單,引用儲存格參照取得網頁資料。

一、央行金融指標:

希望一次取得中央銀行三個金融指標的資料,分別下載到三個工作表。

二、VBA工作表屬性:

進入VBA編輯環境,在左邊的專案視窗中,「Microsoft Excel物件」資料夾選擇「工作表
2(平均存款利率)」。如圖可以清楚看到,在VBA裡面工作表有兩個不同代號,例如在活頁
簿上的標籤名稱是「平均存款利率」、在VBA裡則是「工作表2」,而且參考上一個步驟的
擷圖,可以瞭解活頁簿上工作表次序,和實際Excel系統裡的名稱順序不一樣。以範例來
說,其實有個工作表1被刪除,然後是「工作表4(彙總)」移到最前面了。如此瞭解Excel
的工作表架構(程式語言的專業術語為物件模型),是進一步編寫VBA程式碼的基礎。

三、InputBox函數限制

首先如果沿續上一節的InputBox函數,會發現只要,將游標移到對話方塊外,馬上變成一
顆轉個不停的藍色小球,因為InputBox函數只能直接輸入文字,若是想直接引用儲存格參
照,必須改用InputBox方法。(VBA程式碼的基本結構之一:「物件.方法」,代表對某個
Excel物件執行某個指令方法)。

四、改用InputBox方法

修改VBA程式碼如圖所示,綠色部份是將上一節原來的代碼,以單引號轉換成單純文字(
非程式碼),藍底白字是主要更改的程式碼,由InputBox函數改為InputBox方法。「
WebAress1 = Application.InputBox("請選擇網頁網址所在儲存格", "匯入網址",
Type:=8)」這是InputBox方法的標準結構,和InputBox函數比起來,多了一個「Type:=8
」,表示輸入類型為儲存格參照。「DesCell = Application.InputBox("請選擇資料開始
儲存格", "匯入目的", Type:=8).Address」這一行程式碼和上一行非常接近,只是最後
多加了一個「.Address」,關於這個有兩點說明:

第一點,如前所述,「物件.方法」是VBA程式碼的基本結構之一,相類似的是「物件.屬
性」,於此是將所輸入的儲存格作為物件,以「.Address」傳回其VBA語言形式的範圍參
照。

第二點,「WebAress1 = Application.InputBox」會將「WebAress1」設定為儲存格的值
,也就是網址,「DesCell = Application.InputBox.Address」會將「DesCell」設定為
儲存格本身(儲存格物件),對比接著後面的「WebAress2 = "URL;" & WebAress1」、「
Destination:=Range(DesCell))」,應該較容易理解兩個之間的差異。

五、參照引用網址

於想要執行程式的工作表,例如先移到「平均存款利率」工作表,執行巨集,跳出「匯入
網址」對話方塊,選擇「彙總」工作表的「C2」儲存格,就是央行平均存款利率的網址,
在對話方塊立即出現「彙總!$C$2」。

六、匯入目的儲存格

接著出現「匯入目的」對話方塊,選擇「平均存款利率」工作表的「A1」儲存格,在對話
方塊立即出現「$A$1」。

七、網址清單取得網頁資料

成功匯入網頁內容,以相同方法取得三個工作表資料。

最後再補充提醒,由於這裡範例程式碼為「With ActiveSheet.QueryTables.Add」,「
ActiveSheet」意思是目前現用工作表,所以假設想將資料匯入「平均存款利率」工作表
,必須在執行巨集之前,必須在「平均存款利率」工作表選取任何一個儲存格,如此現用
工作表便會是「平均存款利率」工作表。如果希望更巨集聰明一點,直接將資料匯入任何
指定的工作表,程式碼會稍為複雜一點,於此暫不介紹。


延伸閱讀:

Excel VBA網路爬蟲,InputBox函數開啟對話方塊,輸入中央銀行網址取得利率

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

Excel VBA巨集也能匯出匯入,輕鬆備份共享,完整說明VBA網路爬蟲程式

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

Excel巨集抓取網頁資料出錯了!進入VBA簡單修改,開始成為程式設計師

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


--


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

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


--
Tags: 會計

All Comments

勤業 資料工程顧問工作內容

Emma avatar
By Emma
at 2020-05-10T04:32
大家好,我看到勤業的資料工程顧問職缺,網站介紹是從資料分析到文字探勘,感覺比較像 數據分析師的工作 因為第一次聽到這個職稱,想了解實際工作內容偏向哪一塊,例如客戶接洽佔的比例高不高 ,需不需要非常資工的背景,謝謝 - ...

林蕙真 高會上下冊(第八版)

Audriana avatar
By Audriana
at 2020-05-09T20:27
徵求林蕙真 高會上下冊(第八版) 意者站內信 謝謝 - ...

未來想從事鑑識會計所需的能力?

Gilbert avatar
By Gilbert
at 2020-05-09T14:29
我是目前大三的學生 之前聽過KPMG業師談鑑識會計這塊領域 覺得蠻有趣的 想問如果未來想從事這個方向的話 是否建議先取得審計的實務經驗?(也就是去四大審計部磨個幾年) 大四時是否要修python或其他程式語言 法律方面,會計系的稅法商事法就足夠了嗎? 還有想請問是否有學長姐曾經或正在從事鑑識會計的 覺得這個領 ...

會計師 三法、稅法、審計 函授

Madame avatar
By Madame
at 2020-05-08T18:52
徵求或合購以下會計師課程函授: 高點:三法、稅法 志聖:金永勝審計 意者請寄站內信喔,謝謝~ - ...

請問合建分屋如何作帳?謝謝!!

Emma avatar
By Emma
at 2020-05-07T11:28
請問版上先進大大們: A公司持有土地及房屋17年從未資產重估, 108年帳上未折減餘額:土地NT$1000000持分20坪,房屋建坪40坪NT$291000。 今與建設公司合建,條件64分,3年後預計分得土地12坪,房屋建坪50坪 假設市價一坪50萬 請問財務報表上要如何表達?謝謝!! - ...