0

试图了解和诊断我在 MS server 2008 上的 Excel 设置有什么问题。请参阅下面的 MWE。这在我的 Win 笔记本电脑上运行良好,但在服务器上不是很好。从干净登录开始,它第一次运行正常,但后续运行失败并显示错误文本:

Win32::OLE(0.1709) error 0x80010105: "The server threw an exception"
    in PROPERTYPUT "DisplayAlerts" at mwe.pl line 20

第一次运行将 excel.exe 留在任务管理器中。我想第二次运行是试图重新连接到这个现有实例但失败了。请问我怎么能理解出了什么问题?

或者,如何在脚本完成后终止由 Win32::OLE 启动的 Excel 进程,以便重新运行启动一个新实例?

我的 MWE:

use strict;
use warnings;

use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';

$Win32::OLE::Warn = 3; # Die on Errors.

# use existing instance if Excel is already running
my $Excel;
eval {$Excel = Win32::OLE->GetActiveObject('Excel.Application')};
die "Excel not installed" if $@;

unless (defined $Excel) {
   print "another\n!";
   $Excel = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;})
            or die "Oops, cannot start Excel";
}

$Excel->{DisplayAlerts}=0;

$Excel->Quit();
undef $Excel;
4

1 回答 1

0

你可以用引号试试 $Excel->{'DisplayAlerts'} = 0 吗?我就是这样使用它并且它有效。我想所有的参考都是这样写的。

于 2013-05-21T18:05:25.757 回答