2013-10-08 5 views
0

사람을 사용하여 파일을 엑셀 이미 엑셀

내가 코드

use strict; 
use warnings; 
use Win32::OLE; 

my $xl = Win32::OLE->new('Excel.Application'); 
$xl->{Visible} = 0; 
my $nShtsOld = $xl->{SheetsInOldWorkbook}; 
$xl->{SheetsInOldWorkbook} = 1; 
my $wb = $xl->Workbooks->Open('C:\Users\u304079\Desktop\Test_S1_Legacy_US.xlsx'); 
$xl->{SheetsInOldWorkbook} = $nShtsOld; 
my $sht = $wb->Sheets(o); 
my $end = $sht->Usedrange->Row->Count; 
print $end; 

for (my $count = $end; 0 < $count; $count--) 
{ 
    my $cell = $sht->{Cells}; 
    if (!defined $cell->{Value}) 
    { 
    $cell->entireRow->delete; 

    } 
} 

# save and exit 
     $xl->SaveAs('C:\Users\u304079\Desktop\Test_S1_Legacy_US.xlsx'); 
     $xl->close(); 

하지만없는 스피 아래에 함께 노력 파일을 기존에 사용 행을 삭제하려고

스피 다음 코드로 오류 메시지 받기 정의되지 않은 값에서 "Usedrange"메서드를 호출 할 수 없음 "

+0

오류 만으로 오류가 발생하는 것은 아닙니다. 오류를 남기지 말고, 오해의 소지가 있습니다. – TLP

답변

0

my $sht = $wb->Sheets(o);은 오타 일 수 있습니다. 그것은 0이되어야 0 대신에?

+0

예. 오타가 있지만 0으로 유지하려고했지만 iam은 위에서 언급 한 것과 동일한 오류가 발생합니다. – somesh