||
用PERL用来解析配方文本十分方便,前面我做过一些尝试. 那么,解析结果能不能传递给Excel,或者说,能不能在Excel中调用Perl来解析呢? 我做了一点尝试,用VBA代码来调用PERL运行,初步显示是可行的.
代码比较简单,在Excel内用VBA实现,主要是通过WScript.shell对象来运行PERL程序. 为防止代码中的特殊字符干扰,用双引号把配方文本(存贮在变量formuText中)包围起来. 通过命令行传递给Perl程序,Perl程序解析之后,结果输出给STDOUT,从oExec中读出来交给VBA的变量. 看样子通过命令行传递数组、哈希可能不行,但以字符串的形式出来,再解析一下就可以用,问题不大. 这里是直接用Msgbox展示出来.当然你也可以调整一下PERL模块中的输出字串,以方便Excel中解析.
界面非常简单,选中有配方的单元格,再点击按钮来解析即可. 自然地, 文本要符合特定的格式,以保证PERL能正确解析.
演示代码如下,配方是瞎编的,与真实无关.
Excel_FormuParser_with_Perl2021-6-8.rar
当然,运行需要安装Perl环境,并调整VBA的代码中模块的位置与实际安装的相符. PERL代码在附件中,此处不作详细解释.
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-29 09:49
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社