my $Book = $Excel->Workbooks->Open("$input_file") || die "could not open excel file"; my $sheetcnt = $Book->Worksheets->Count(); $sheetcnt++; my $New_Sheet = $Book->Worksheets->Add({After=>$Book->Worksheets($Book->Worksheets->{Count})}); print "Sheetcount = $sheetcnt\n"; ####30############################################################################## my $count = 0; ########Counting the sheet number, if first sheet, then take the whole data, else exclude first row foreach my $Sheet(in $Book->{Worksheets}) { my $select_sheet = $Sheet; if($select_sheet->Range("A1")->{Value} =~ /Step/i) { my ($last_row,$last_column) = sub_find_last($Sheet); print "$select_sheet->{Name} $last_row,$last_column\n"; last if ($count == $Book->Worksheets->{Count}); if($count==0) { my $copy_range = $select_sheet->Range("A1:$last_col"); $select_sheet->copy($copy_range); my $paste_range = $New_Sheet->Range('A1'); $paste_range->paste(); $count++; } else { my ($last2_row,$last2_col) = sub_find_last($New_Sheet); print "$last2_row and $last2_col are here\n"; my $range_needed = $last2_row + 1; my $copy_range = $select_sheet->Range("B1:$last_col"); $select_sheet->copy($copy_range); my $paste_range = $New_Sheet->Range("$range_needed"); $pasted = $paste_range->paste(); # $Book2->Save(); $count++; } } } ##########Subroutines########### ####sub find_last######## ####Used to find the last row/column in the sheet sub sub_find_last { my $sheet_sel = shift; # print "$sheet_sel is the sheet selected\n"; my ($last_rows,$last_col); $last_rows = $sheet_sel->UsedRange->Find({What=>"*", SearchDirection=>xlPrevious, SearchOrder=>xlByRows})->{Row}; $last_col = $sheet_sel->UsedRange->Find({What=>"*", SearchDirection=>xlPrevious, SearchOrder=>xlByColumns})->{Column}; return ($last_rows,$last_col); }