excel vba抓取网页数据(基础篇Excel的缺省脚本语言脚本的实现问题及解决办法)

优采云 发布时间: 2021-09-13 14:04

  excel vba抓取网页数据(基础篇Excel的缺省脚本语言脚本的实现问题及解决办法)

  基础文章

  Excel默认的脚本语言是VBA,所以系统的所有界面理论上都可以通过VBA脚本访问,而其他脚本语言可能只能访问部分功能。这需要开发者清楚。但是Javascript脚本的优点是语法简单,结构清晰,用户友好:比如支持Function-Frist,不需要管理内存,支持Object类型,for循环语法简单。

  JavaScript 的基本使用方法

  1.在参考中收录“Microsoft Script Control”控件

  添加对 MS Script Control 控件的支持

  2.新建一个ScriptControl,即创建JS运行环境

  3.在JS运行环境中添加JavaScript脚本(字符串)

  4.在JS运行环境中调用函数

  JavaScript 的基本使用方法

  实际项目中的问题

  在VBA脚本中以字符串的形式定义JavaScript脚本/程序会带来很多麻烦:

  当字符串很长时,需要换行,而VBA本身需要在每行添加一个连字符进行换行。 JavaScript 程序的换行符只能用转义符表示。 JavaScript 代码的管理、维护、检查甚至调试都无法单独进行。因此,在实际项目中,一般需要分别管理JavaScript脚本和VBA脚本。然后涉及到如何在VBA中读取JavaScript脚本。拿到脚本对应的字符串后,就可以将其添加到JS运行环境中。大概有3种方法:(一)JavaScript与Excel文件一起发出。VBA脚本运行时读取本地JavaScript文件;(二)JavaScript文件放在服务器上,VBA下载JavaScript文件并读取。(三)JavaScript文件以某种方式收录在Excel文件中。显然,方法(一),(二)更适合开发阶段;而方法(三)是适合实际发布版本,下面介绍几种方法的实现问题。

  问题 1:读取文件

  支持UTF-8编码的文件

  VBA中一般可以使用FileSystemObjectScripting对象的Open-Input接口或TextStream接口读取文件,但都不支持读取UTF-8编码的文件。而 JavaScript 脚本文件一般以 UTF-8 编码格式存储。因此,需要使用支持这种编码的文件读取方式。例如,示例中使用了 ADODB.Steam 对象来支持读取 UTF-8 编码的文件。

  问题 2:下载远程文件。在 VBA 中有两种下载远程文件的方法。一种是使用VBA中提供的某些控件进行下载,另一种是使用操作系统的底层接口进行下载。一般来说,第二种方法更快更稳定。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线