2017-12-18 3 views
0

可能であれば、誰かが正しい方向に私を向けることができますか?私は、ユーザーからの情報に基づいて、あらかじめ塗りつぶしたスプレッドシートを生成するスクリプトを作成しています。私が抱えている唯一の問題は、既存のワークブックから新しいワークブックにワークシートをコピーする方法です。powershell v2.0のスプレッドシートに「アイテム」を使用

2番目のワークブックに対応するワークシートの名前を持つ「データ」シートがあります。 PowerShellでセルを読み込み、読み込んだ名前を使用してそれぞれの名前のワークシートを取得します。私は下に次を使用しようとすると、現在、私は(単なる例)インデックスエラーに実行しているよ:

$dog = "UPS" 
$sourceSheet = $sourceSheets.Item($dog) 

は、「アイテム」を使用して、名前でPSオープンワークシートのセルができますか?

#This reads the 'DATA' sheet and uses the numbers to figure out what kits are being used for each UTC 
$count = 0 
For ($k = 2; $k -le 25; $k++) 
{ 
    $Value += $datasheet.Cells.Item(1, $k).Text 
    #next two lines verify number of cells 
    If ($Value -ne "") {$count++} 
    Write-Host $count 
} 
#Creates name for excel spreadsheet 
$cutsheet = "cutsheet" 

#saves spreadsheet in folder created earlier 
$worksheet.SaveAs("Q:\$mission\$cutsheet") 

#opens inventory workbook 
$source = $excel.workbooks.Open("Q:\inventory.xlsx") 

$sourceSheets = $source.Worksheets 
$sourceSheet = $sourceSheets.Item(2) 
$dest2 = $worksheets.Item(7) 
$sourceSheet.copy($dest2) 

答えて

0

私はあなたのシナリオを模擬しようとしたし、次のコードを思い付いています

$excel = New-Object -comobject Excel.Application 
$excel.Visible = $True 
#opens inventory workbook 
$source = $excel.workbooks.Open("C:\Users\you\Desktop\test.xls") 
$dest = $excel.workbooks.Open("C:\Users\you\Desktop\a.xls") 

$source.Worksheets.Item(2).copy($dest.Worksheets.Item(2)) 
$dest.Save() 
$excel.Quit() 
+0

注:正しくCOMオブジェクトを削除するように注意してください:https://stackoverflow.com/a/46269778/8291949 – wp78de

関連する問題