我想使用VBA从Excel调用Perl脚本。我使用了shell命令。我还使用了以下代码:
Function Chk()
Dim RetVal
RetVal = Shell("C:\Perl\bin\Hello.pl", 1)
End Function
但是上面的函数没有运行该文件。有什么错误吗?
还有其他方法可以使用Excel调用Perl脚本或外部程序吗?
答案 0 :(得分:5)
查看ActiveState的Perl扩展。它们有一个“ActivePerl”DLL,它将Perl解释器作为ActiveX组件运行,它应该允许与Excel无缝集成。
此外,它们的OLE扩展允许Perl访问完整的Excel OLE对象 模型,因此您可以非常精确地操作电子表格。
答案 1 :(得分:4)
你需要炮轰:
c:\perl\bin\perl.exe Hello.pl
让它运行。
答案 2 :(得分:4)
您还可以将此行添加为脚本中的第一行:
#!c:\perl\bin\perl.exe
答案 3 :(得分:1)
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的路径或脚本的路径(或者脚本的任何其他参数)中都有空格,那么您需要形成一个包含引用它们的双引号字符的字符串,像:
Function Chk()
Dim RetVal
Chk = Shell("C:\Perl\bin\perl.exe ""C:\Some path\with spaces\Hello.pl""", 1)
End Function
会做到这一点。