[英]Copying range from one workbook sheet to another workbook sheet with PowerShell
我試圖制作一個腳本,從一個工作簿表復制到另一個工作表,然后粘貼在完全相同的范圍內。 我嘗試了五種不同的解決方案,但失敗了。
$excel=new-object -comobject excel.application;
$excel.visible=$true;
$SourceWorkBook=$Excel.Workbooks.open("C:\Oldsheet.xlsx");
$TargetWorkBook=$excel.workBooks.open("C:\Newsheet.xlsx");
$SourceWorkBook.WorkSheets.item("Numbers").activate();
$SourceRange=$SourceWorkBook.WorkSheets.item("Numbers").range("B2:G400");
$SourceRange.copy() | out-null;
$TargetWorkBook.worksheets.item("Numbers").paste("B2:G400");
上面的代碼打開了工作簿,並選擇了要復制的范圍,但自身並未粘貼。 另外,我想禁止顯示錯誤消息($ Excel.DisplayAlerts = $ False不起作用),並在粘貼后保存文件。
嘗試這個:
Add-Type -AssemblyName Microsoft.Office.Interop.Excel
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $true
$excel.DisplayAlerts = $false
$SourceWorkBook=$Excel.Workbooks.Open("C:\Oldsheet.xlsx")
$TargetWorkbook=$excel.workBooks.Open("C:\Newsheet.xlsx")
$SourceWorkBook.WorkSheets.Item("Numbers").Activate()
$SourceRange=$SourceWorkBook.WorkSheets.Item("Numbers").Range("B2:G400")
[void]$SourceRange.Copy()
[void]$TargetWorkBook.worksheets.item("Numbers").Range("B2:G400").PasteSpecial( [Microsoft.Office.Interop.Excel.XlPasteType]::xlPasteAll )
[void]$SourceWorkBook.Close()
[void]$TargetWorkBook.Save()
[void]$TargetWorkBook.Close()
$excel.DisplayAlerts = $true
[void]$excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.