in reply to Re^2: How to resolve the sound error while executing this program?
in thread How to resolve the sound error while executing this program?

Thanks for the correct formatting, this makes it much easier for people to read your code. I can see right away that this script isn't going to run properly. If you cut your example down to just:

use warnings; use strict; # we are going be working with MS Word Objects use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Excel'; use Win32::OLE::Variant; $word->{Displayalerts} = 0;

And run it you'lll see:

Global symbol "$word" requires explicit package name at strict.pl line + 8. Execution of strict.pl aborted due to compilation errors.

Basically, you've done this before you've created your Word OLE instance. So move this line to after declaring $Word. Also variable names are case sensitive. You have $word->{Displayalerts} = 0; but the word object is $Word. I've reworked the code so far, removed some blank lines:

use warnings; use strict; # we are going be working with MS Word Objects use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Excel'; use Win32::OLE::Variant; my $text = ""; my $directory = "c:\\"; opendir (DH, $directory) || die "can't opendir $directory: $!"; # we are working with Word application my $Word = Win32::OLE->new('Word.Application', 'Quit'); $Word->{Displayalerts} = 0; # hide alerts $Word->{Visible}= 0; # we don't need to see Word in an active window my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit'); $Excel->{Displayalerts} = 0; # hide alerts my $excelfile = "E:\\assin\\foo\\sample.xlsx"; my $root = "E:\\assin\\foo"; my $doc = "E:\\assin\\foo\\Functional.doc";

I don't have the documents you're using. Much of what remains is an exercise for you to resolve. Your next problem is the for loops. You have:

# get the first table my $table = $Word->ActiveDocument->Tables(1); for($row=1;$row<3;$row++) { for($col=1;$col<3;$col++) { my $text = $table->Cell($row,$col)->Range->{Text}; $Sheet->Cells($row,$col)->{'Formula'}=$text; }

There are some problems here. Firstly, you are missing a closing brace, you have two for loops with their opening braces and one closing brace.

for( $row = 1; $row < 3; $row++ ){ for( $col = 1; $col < 3; $col++ ){ my $text = $table->Cell($row,$col)->Range->{Text}; $Sheet->Cells($row,$col)->{'Formula'}=$text; } }

I suggest you do some reading and some research, then make these changes to your code and test it again with the documents you have. You should get some warnings about variables being declared but never used (e.g. @test). Properly indenting your code and using an editor with Syntax_highlighting helps to see where problems are.

"Thanks for suggestion but its no working."

It's not working isn't a helpful reply, you didn't mention what happened when you ran your program, what errors and warnings you encountered. To learn some more about what you're working with, and how to improve your posts here I suggest you read the following: