丁祥欢
用VBA调用PERL模块来解析配方的尝试
2021-6-8 16:09
阅读:2876

用PERL用来解析配方文本十分方便,前面我做过一些尝试. 那么,解析结果能不能传递给Excel,或者说,能不能在Excel中调用Perl来解析呢? 我做了一点尝试,用VBA代码来调用PERL运行,初步显示是可行的.

代码比较简单,在Excel内用VBA实现,主要是通过WScript.shell对象来运行PERL程序. 为防止代码中的特殊字符干扰,用双引号把配方文本(存贮在变量formuText中)包围起来. 通过命令行传递给Perl程序,Perl程序解析之后,结果输出给STDOUT,从oExec中读出来交给VBA的变量. 看样子通过命令行传递数组、哈希可能不行,但以字符串的形式出来,再解析一下就可以用,问题不大.  这里是直接用Msgbox展示出来.当然你也可以调整一下PERL模块中的输出字串,以方便Excel中解析.

VBA call perl.png


界面非常简单,选中有配方的单元格,再点击按钮来解析即可. 自然地, 文本要符合特定的格式,以保证PERL能正确解析.

VBA Call Perl界面.png

演示代码如下,配方是瞎编的,与真实无关.

Excel_FormuParser_with_Perl2021-6-8.rar

当然,运行需要安装Perl环境,并调整VBA的代码中模块的位置与实际安装的相符. PERL代码在附件中,此处不作详细解释.

转载本文请联系原作者获取授权,同时请注明本文来自丁祥欢科学网博客。

链接地址:https://m.sciencenet.cn/blog-1213210-1290292.html?mobile=1

收藏

分享到:

当前推荐数:0
推荐到博客首页
网友评论0 条评论
确定删除指定的回复吗?
确定删除本博文吗?