【问题标题】:How can I run a macro in an Excel file I open with Perl?如何在使用 Perl 打开的 Excel 文件中运行宏?
【发布时间】:2010-09-20 12:19:39
【问题描述】:

如何在使用 Perl 打开的 Excel 文件中运行宏?

【问题讨论】:

  • 您是否安装了 Excel,或者您正在寻找纯 Perl 解决方案?
  • 您使用的是哪个平台?您很可能必须通过 Excel 打开它,然后告诉 Excel 要做什么。这可能通过 Win32::OLE 很容易。

标签: perl vba excel


【解决方案1】:

这里是一个可行的框架。

use strict;
use warnings;
use Win32::OLE;

my $excel= Win32::OLE->new('Excel.Application') 
    or die "Could not create Excel.Application!\n"
    ;
$excel->Workbooks->open( 'C:\Users\Me\Documents\Book1.xlsx' );
$excel->run( 'Book1!Macro1' );
$excel->quit;

您可以做到这一点的最可靠方法之一是简单地记录打开电子表格并运行宏的宏。然后查看生成的宏代码并将其转换为 Perl。请记住,OLE 对象是 Application 对象。

2010 年 9 月 22 日 - 我添加了 quit 以阻止 Excel 运行。

【讨论】:

  • excel.exe 在 perl 脚本之后不会挂起。在 taskmgr 中有很多重复的 excel.exe。我该如何解决?
  • undef $excel; 最后会停止 excel.exe
  • @Powertieke & @jushlwest:我添加了$excel->quit() 以阻止进程运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多