我如何从Excel调用Perl脚本?

我想使用VBA从Excel调用Perl脚本。 我已经使用了一个shell命令。 我也使用了下面的代码:

Function Chk() Dim RetVal RetVal = Shell("C:\Perl\bin\Hello.pl", 1) End Function 

但是上面的函数不会运行该文件。 有什么错误吗?

有没有其他的方法来使用Excel调用Perl脚本或外部程序?

看看ActiveState的Perl扩展。 他们有一个“ActivePerl”DLL运行Perl解释器作为一个ActiveX组件,应该允许与Excel无缝集成。

另外,它们的OLE扩展允许Perl访问完整的Excel OLE对象模型,因此您可以非常精确地操作电子表格。

你需要掏出来:

  c:\perl\bin\perl.exe Hello.pl 

使其运行。

您也可以在脚本中添加这一行:

 #!c:\perl\bin\perl.exe 

Excel的Shell()函数可能会忽略文件关联。 你几乎肯定需要说一些更像是:

 Function Chk() Dim RetVal Chk = Shell("C:\Perl\bin\perl.exe C:\Perl\bin\Hello.pl", 1) End Function 

得到你想要的效果。 需要注意的两个变化是,第一,显式调用perl.exe,第二,函数中的小语法错误是写的。

请注意,如果perl.exe的path或脚本的path(或脚本的任何其他参数)中都有空格,则需要形成一个包含引号的双引号字符的string,类似于:

 Function Chk() Dim RetVal Chk = Shell("C:\Perl\bin\perl.exe ""C:\Some path\with spaces\Hello.pl""", 1) End Function 

会做的伎俩。