【问题标题】:How do I call a Perl script from Excel?如何从 Excel 调用 Perl 脚本?
【发布时间】:2009-03-06 08:58:41
【问题描述】:

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

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

但是上面的函数并没有运行文件。有什么错误吗?

还有其他方法可以使用 Excel 调用 Perl 脚本或外部程序吗?

【问题讨论】:

    标签: perl excel


    【解决方案1】:

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

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

    【讨论】:

    • +1 一般有用,但我认为对于提问者的特殊情况,这不是最佳答案。
    【解决方案2】:

    您需要支付以下费用:

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

    让它运行。

    【讨论】:

      【解决方案3】:

      您也可以将此行添加为脚本中的第一行:

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

      【讨论】:

      • 我觉得你“需要”编辑与 perl 相关的 EVERY 帖子非常烦人。
      【解决方案4】:

      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
      

      会成功的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-17
        • 2012-07-23
        • 2011-01-31
        • 2011-04-13
        • 1970-01-01
        • 2012-03-10
        • 1970-01-01
        相关资源
        最近更新 更多