use Win32::OLE::Const 'Microsoft Excel'; $Excel = Win32::OLE->new('Excel.Application'); $book = $Excel->Workbooks->Open("d:\\test.xls"); $sheetdata = $book->Worksheets(1); $sheetdata->{Name} = "Data"; $book->Names->Add({Name=>'abc', RefersTo=>'=Data!$D$1:$D$19'}); $book->Names->Add({Name=>'def', RefersTo=>'=Data!$E$1:$E$19'}); $sheetdata->Range('abc')->AdvancedFilter({Action => 0, CopyToRange=> $sheetdata->Range('def'), Unique => 1}); $sheetdata->Activate;