2017-10-20 19 views
0

Excelのワークシートに式=IF(D2="";"";COUNTIF(D:D;D2))を挿入しようとしました。ここ は、私がしようとしているコードです:Perlを使ってセルに式を書く方法WIN32 :: OLE

$WorkSheet->Cells($Row2Use,'L')->{Formula} = "=IF(D".$Row2Use."=\"\",\"\",COUNTIF(D:D,D".$Row2Use.")"; # =IF(D2="";"";COUNTIF(D:D;D2)) 

私も成功せず{Value}代わりの{Formula}を使用してみました! 私は間違っていた

+1

[Perlの一覧は、Win32 :: OLEモジュールを使用してWindows Excelを操作するコマンド]の可能な重複(https://stackoverflow.com/questions/27613878/list-of-perl-commands-to-manipulate- windows-excel-with-win32ole-module) – xxfelixxx

+0

こちらをご覧ください:https://stackoverflow.com/questions/27613878/list-of-perl-commands-to-manipulate-windows-excel-with-win32ole-module – xxfelixxx

+0

はい、そうかもしれませんが、もちろん私もこれを見て読んでいました。 私が '{Formula}'で使用している方法は正しいですが、最後には私のセルが空で、構文エラーのようなエラーは表示されません! –

答えて

0

これは私のために働く。 xxfelixxxで指定されたリンクから取得され、変更されたコード。

use Cwd 'abs_path'; 
use Win32::OLE; 
use Win32::OLE qw(in with); 
use Win32::OLE::Const "Microsoft Excel"; 
$Win32::OLE::Warn = 3; 


my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit'); 

$Excel->{Visible} = 1; 

my $Book = $Excel->Workbooks->Add; 
my $Sheet = $Book->Activesheet; 

$Sheet->Range("A1")->{Value} = 1; 
$Sheet->Range("A2")->{Value} = 1; 
$Sheet->Range("A3")->{Formula} = "=SUMA(R[-2]C:R[-1]C)"; 
+0

これは与えられたものに従いません: 'A1'で' Formula'を使う... 'An'表記法またはセルの相対位置で' FormulaR1C1'を使う –

+0

$ Sheet-> Range( "D3 ")=> {式} = '= IF(D2 =" ";" "; COUNTIF(D:D; D2))'; - 動作しているようです – jira

+0

Rangeの代わりにCellを使用すると例外が発生します。 – jira

関連する問題