0

彼ら、

既存の Excel ファイルで使用されている行を削除しようとしています

私は以下のコードで試しました

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」を呼び出すことができないというエラーメッセージを取得する次のコードを実行することはできません」

4

1 に答える 1

0

my $sht = $wb->Sheets(o);タイプミスの可能性があるようです。0代わりにそれはゼロであるべきですか?

于 2013-10-08T12:20:48.483 に答える