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