看板 Accounting 關於我們 聯絡資訊
Excel如何財務報表另存新檔 網誌圖文版: http://www.b88104069.com/archives/4330 本章第一節到第三節,分享如何將每日匯率儲存於分別的工作表,累積一段時間再彙總分 析,如此雖然方便,然而所有工作表資料放在同一個活頁簿,數量多的話,不是很好處理 。例如一年有365天、扣除假日估算250個工作天,也就是在同一活頁簿會有250個工作表 ,光是想像就不太容易。這裡以第五章財務報表為例,介紹另一種可行方法,把每次取得 的資料儲存為一個Excel檔案,有需要時再調出來整理分析,以下具體分享: 一、首先,建立一個Excel報表,於格式設計包含所有關鍵參數。 二、編寫如下VBA程式碼: 10~30:「Option Explicit」意思是強制必須宣告變數,在程式碼較多的情況,建議在一 開始、程序的上面寫上這麼一段話。接著的「Public」為宣告公共變數,如果有定義那些 公共變數的話,其值可以跨模組延用。 70~140:和先前章節類似的變數定義方式,這裡用到「CInt」函數將值轉換為整數,其用 法和「CStr」文字函數類似。這裡的「Application.InputBox」方法在以前章節常用,意 思是以輸入視窗的方式填入儲存格參照,並且將同一行的其他欄位資料合併,作為想取得 資料網頁的止。 160~200:先前章節習慣使用「For…Next」,其間皆是以等差級數作為循環,但如果遇到 像這裡想以一組文字依序循環,必須用數列設定集合變數,宣告一個「Variant」變數代 表集合中的個數。以這裡為例,便是將「FR(2)」、「FR(3)」、「FR(4)」設定為文字變 數「report」,其值依序為「Balance Sheet」、「Income Statement」、「Cash Flows 」。 200~350:如同上一章第五節所言,「For Each In…Next」是一種特別的「For…Next」 循環語句,它循環的對象為集合或數列裡的每一個元素或項目。搭配「T1」、「T2」的計 算式,循環依序建立「Balance Sheet」、「Income Statement」、「Cash Flows」三個 工作表,並且將同一網頁中第2個、第3個、第4個表格資料下載到各個工作表。 三、先測試看看,故意將程式碼中的「WebAddress」改成「WebAdress」,因為拼字錯誤 並沒有宣告變數,執行程式果然跳出提示視窗:「編譯錯誤:變數未定義」。 四、正式執行巨集程式,首先會跑「Application.InputBox」,出現輸入儲存格參照的視 窗,在這裡選擇「A2」。 五、如願新增了工作表,同時還將三大財務報表都下載好了! 六、同場加映,設計VBA程式碼將財務報表另存新檔。 七、果然冒出來:「1-2002-中鋼-2016-4」,這是財報資料庫的第一個檔案。 八、最後補充,因為每位讀者所偏好的資料夾不同,可以在自己電腦滑鼠右鍵,點選「內 容」,出現如圖所示的視窗,其中的「位置」便是目前所在的資料夾路徑:「 C:\Users\b8810\Documents」,再加上本身的資料夾名稱,即為這一節VBA程式碼的「 C:\Users\b8810\Documents\FRs\」。 此處介紹的方法是先在Excel建立一個表單,執行程式時讓操作者選擇表單中任何一項, 不過其實也可以預設好想下載哪些財報,編寫於VBA程式中,直接將網頁資料儲存成電腦 檔案。這裡之所以透過表單中介,一方面是留有一份資料庫清單,另一方面保有彈性,用 Excel輸入資料還是比較快,毋須捨本逐末,什麼都要寫成VBA程式碼。 本文內容取自《人人做得到的網路資料整理術》,博客來書店網址: http://www.books.com.tw/products/0010775391。 延伸閱讀: Excel如何一次匯總比較三家公司財務報表 http://www.b88104069.com/archives/4321 Excel如何取得多家公司財務報表 http://www.b88104069.com/archives/4317 Excel如何取得股票代碼清單 http://www.b88104069.com/archives/4315 -- 周末,我們繼續Excel:精華區=>21.心得=>5.其他=>3.office 會計人的Excel小教室: https://www.facebook.com/acctexcel -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 112.20.96.146 ※ 文章網址: https://www.ptt.cc/bbs/Accounting/M.1533449339.A.B49.html