2012-10-18 84 views
0

我想使用Perl在已經打開的 Excel工作簿中運行宏。如何使用Perl在**已打開的Excel工作簿中運行宏

下面的代碼工作,如果我只是想打開工作簿,並運行宏:

#!C:\Perl\bin\perl.exe  
use strict; 
use Win32::OLE; 

my $Excel = Win32::OLE->new('Excel.Application') or die; 
$Excel->Workbooks->open('M:\Programs\MyExcelFile.xls'); 
$Excel->run('Book1!ChartData'); 
$Excel->quit; 

但我怎麼上開放工作簿操作?

回答

0

使用GetActiveObject。來自the docs

Here is a simple Microsoft Excel application. 

     use Win32::OLE; 

     # use existing instance if Excel is already running 
     eval {$ex = Win32::OLE->GetActiveObject('Excel.Application')}; 
     die "Excel not installed" if [email protected]; 
     unless (defined $ex) { 
      $ex = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;}) 
        or die "Oops, cannot start Excel"; 
     } 
相關問題