Question:
I’d like to copy (or move) a worksheet from one workbook to another workbook with Powershell.
I had done this before and cant remember how. I think I used CopyTo() function.
Just to get started.
1 2 3 4 5 6 7 8 9 |
$missing = [System.Type]::missing $excel = New-Object -Com Excel.Application $wb1 = $excel.Workbooks.Add($missing) $wb2 = $excel.Workbooks.Add($missing) # Now, to copy worksheet "Sheet3" from $wb2 into $wb1 as second worksheet. # How? |
Answer:
See post from Kiron
Changed index to copy to second sheet:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$file1 = 'C:\Users\eric\Documents\Book1.xlsx' # source's fullpath $file2 = 'C:\Users\eric\Documents\Book2.xlsx' # destination's fullpath $xl = new-object -c excel.application $xl.displayAlerts = $false # don't prompt the user $wb2 = $xl.workbooks.open($file1, $null, $true) # open source, readonly $wb1 = $xl.workbooks.open($file2) # open target $sh1_wb1 = $wb1.sheets.item(2) # second sheet in destination workbook $sheetToCopy = $wb2.sheets.item('Sheet3') # source sheet to copy $sheetToCopy.copy($sh1_wb1) # copy source sheet to destination workbook $wb2.close($false) # close source workbook w/o saving $wb1.close($true) # close and save destination workbook $xl.quit() spps -n excel |