It would help if you showed us the code that is failing, cut down to the smallest amount that will demonstrate the problem. The other problem is that your explanation isn't precise. You can't "quit" a spreadsheet. You can close a file or quit the application. I suspect that this is where you are going wrong, as I have no problem deleting either of the last two lines from the following code:
use strict;
use warnings;
use Win32::OLE;
my $xl = Win32::OLE->new('Excel.Application');
$xl->{Visible} = 1;
$xl->{SheetsInNewWorkbook} = 1;
my $wb = $xl->Workbooks->Add;
$xl->VBE->ActiveVBProject->VBComponents->Add(1);
my $cm = $xl->VBE->ActiveVBProject->VBComponents(3)->CodeModule;
my $line = int($cm->CountOfLines);
$cm->InsertLines(++$line,"Function Example(n as double) as double");
$cm->InsertLines(++$line,"Example = n^2");
$cm->InsertLines(++$line,"End Function");
$wb->Sheets(1)->Cells(1,1)->{Formula} = '=example(2)';
$xl->{DisplayAlerts} = 0;
$wb->Close;
$xl->Quit;
Regards,
John Davies |