2016-07-13 10 views
0

IDのような列の値を10行目から45行目に更新する必要があるExcelシートがあります。 私は複合ID "abcd_10"を "abcd_45"に拡張する必要があります。 forループを使用する代わりに、それを行うコマンドは何ですか?なぜなら、for-loopは何度も何度もセルを指しているから、時間がかかるからです。 私はこのコードを使用しています。何が問題なのか教えてください。PowerShellコマンドを使用してExcelシートで列値を自動生成

$codeName = $currentCode 
$finCode = $codeName + "_" + $i 
$currentSheet.Cells.Item($intRow, $currentCol).Value2 = $finCode 


$range1 = $currentSheet.Range("C10"); 
$r = $currentSheet.Range("C10:C45"); 
$range1.AutoFill($r, $currentCol) 
$finCode

は第10行に挿入され、今は45行まで「abcd_45」にそれを拡張するために必要とされている初期値「abcd_10」を有します。 私はこのためにAutoFillを使用しましたが、それは私のために働いていません。

答えて

0

second parameterfill typeと0を指定します(私も唯一のVBAからそれをテストした)あなたのケースで動作するはずのデフォルトであるだけ

$range1.AutoFill($r, 0) 

でそれを試してみてください。


場合には、あなたは、標準のCOM相互運用機能をアップデートを使用している:

次のスクリプトは、私の作品(私は未知の値のためのいくつかのデフォルト値を使用)。

$Filepath = "C:\tmp\posh\excel-interop\Book1.xlsx" 

$Excel = New-Object -Comobject Excel.Application 
$Excel.Visible = $True 
$Workbook = $Excel.Workbooks.Add() 
$currentSheet = $Workbook.Sheets.Item('Sheet1') 

$i = 10 
$codeName = 'abcd' 
$finCode = $codeName + "_" + $i 
$currentSheet.Cells.Item(10, 3).Value2 = $finCode 

$range1 = $currentSheet.Range("C10"); 
$r = $currentSheet.Range("C10:C45"); 
$range1.AutoFill($r, 0) 
+0

@DAXholic:0は列番号です。フィールドそれは動作しません。 –

+0

コードをもっと表示してください。現在、標準COMを使用してExcelや他のライブラリとやりとりするかどうかはわかりません – DAXaholic

関連する問題