http://qs321.pair.com?node_id=1230001


in reply to Increase speed of nested loop Win32 Excel Manipulation

You could shift those parts from the current loop towards the outer loop that do not depend on the variables of the current loop (= are constant in that loop). This avoids unnecessary re-computation and might slightly improve performance.

use warnings; use Win32::OLE; use Win32::OLE qw(in with); use Win32::OLE::Const "Microsoft Excel" my $yes = "yes"; #-- moved: constant for both loops for ($begincol;$begincol<$totcol;$begincol++) { my $app = $sheet2->Cells(3,$begincol)->{'Text'}; #-- moved: consta +nt for next loop for ($beginrow;$beginrow<$maxrows;$beginrow++) { my $cap = $Sheet2->Cells($beginrow,5)->{'Text'}; #-- moved out of inner loop: my $app = $sheet2->Cells(3,$begi +ncol)->{'Text'}; #-- moved out of both loops: my $yes = "yes"; if (index($app, $cap) != -1) { $Sheet->Cells($beginrow,$begincol)->{Value} = $asis; } } $beginrow = 7; }