【Excel VBA网络爬虫】InputBox方法

楼主: moodyblue   2020-05-11 22:01:27
【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

Links booklink

Contact Us: admin [ a t ] ucptt.com