[心得] Excel如何取得多家公司财务报表

楼主: moodyblue   2018-06-24 10:37:14
Excel如何取得多家公司财务报表
网志图文版:
http://www.b88104069.com/archives/4317
上一节成功取得股票代码及公司名称的清单,然而以本章宗旨而言,目的仍然是下载财务
报表资料,最好是批次获得、直接储存为Excel档案。上一章《Excel牌告汇率》中,是将
所有批次取得的资料放在同一张工作表,不过本章财务报表的情况不同,因为各家公司损
益表结构不一定相同,比较不适合都放在同一张工作表。有个变通作法,将每家公司的资
料分别放在不同工作表上,在第三章第三节有介绍过如何以VBA程式新增工作表,当时是
以Application.Inputbox参照储存格的方法,其于本质上仍然是一次一个的手工操作,这
一节要介绍如何批次新增工作表,同时分别取得各家公司的财务报表:
一、从清单中,选择五档股票。
二、编写VBA程式码如下:
40:想利用Excel作为VBA程式的一部份,首先必须计算Excel资料的范围,于此范例即为
有多少行,“UsedRange.Rows.Count”便是执行此计算最佳的程式。
70:MsgBox为VBA中相当基本的函数,作用是跳出提示讯息的视窗,函数后面接的字符串
是视窗中显示的讯息文字。
三、执行宏后,跳出来的视窗:“资料共有7行”。
四、编写新增工作表的程式码:
30:宣告变量。
50~60:计算工作表“一”有多少行资料,由于上一个步骤验证过,计算结果会比实际行
数多一,所以这里设定“Row=Row-1”。
80:以变量“i”设置循环,参照资料有标题行,因此这里是从“2”开始,一直到代表总
共有多少行。
100~120:将“Stock”变量设定为“股票代码-公司名称”。
140~150:新增工作表,依序以“Stock”更改新工作表的名称。
五、执行结果,一如预期。
六、最后再添加补充程式码如下,执行前记得先将上一步骤新增的工作表删除,避免VBA
提示错误。另外这里的程式行虽然多,主要是UsedRange.Rows.Count、
ActiveWorkbook.Sheets.Add、ActiveSheet.QueryTables.Add三个VBA方法综合应用,在
先前皆已介绍过,于此不再多作说明。
七、成功取得五家公司2016年度的损益表。
循环是程式语言批量取得资料的最方便工具,其特性是利用一个递增或递减的变量循环,
如同上一章《Excel牌告汇率》范例所示,此特性在时间日期相关的网页绝佳合适。这一
章的公司代码虽然也是数字,可是为不规则不连续,没办法直接设置循环,所以绕个弯,
改在Excel工作表先建立清单,然后依照行列顺序的特性,作为VBA循环程式的循环对象。
设计Excel公式时,依照情况需要选择不同函数搭配,VBA取得网页资料也是同样道理,必
须视网页结构编写不同的程式码,这一章和上一章便是极佳例证。
本文内容取自《人人做得到的网络资料整理术》,博客来书店网址:
http://www.books.com.tw/products/0010775391。
延伸阅读:
Excel如何取得公开发行公司财务报表
http://www.b88104069.com/archives/4312
Excel如何取得多期损益报表
http://www.b88104069.com/archives/4313
Excel如何取得股票代码清单
http://www.b88104069.com/archives/4315

Links booklink

Contact Us: admin [ a t ] ucptt.com