2017-05-25 119 views
0

我已經嘗試了很多選項,將從其他Excel工作簿複製的信息粘貼到我的新工作簿中,但沒有成功(範圍很大 - 多於3000行)。 請參閱我的腳本樣本,我會感激你的建議:從Powershell粘貼到Excel

$objExcel = New-Object -ComObject Excel.Application 
$objExcel.Visible = $false 
$objExcel.displayAlerts = $false 
$Src = [Environment]::GetFolderPath('Desktop')+'\New.xlsx' 
$Files = [Environment]::GetFolderPath('Desktop')+'\Org.xlsx' 
$wb1 = $objExcel.workbooks.open($Files) 
$Worksheetwb1 = $wb1.WorkSheets.item('Org') 
$Worksheetwb1.activate() 
$Range = $Worksheetwb1.Range('A1:I1').EntireColumn 
$Range.Copy() | Out-Null 
$wb3 = $objExcel.workbooks.open($Src) 
$Worksheetwb3 = $wb3.WorkSheets.item('Dest') 
$Worksheetwb3.activate() 
$Worksheetwb3.Columns.item('A:I').clear() 
$Range3 = $Worksheetwb3.Range('A1:I1').EntireColumn 
$Worksheetwb3.Paste($Range.Value2) 
$wb3.close($true) 
$wb1.close($true) 
$objExcel.Quit() 

在先進的感謝, 塔爾

+0

您能更具體地瞭解哪些工作不正常嗎?你知道它能成功嗎?如果你在'A1'中有一個值而不是多列範圍,腳本是否成功?我經常處理PowerShell和Excel,但如果沒有更詳細的信息,我將無法提供幫助。 – gms0ulman

+0

粘貼不適合我「$ Worksheetwb3.Paste($ Range.Value2)」 – Tal

回答

0

非常感謝您的回答,但這些並沒有以某種方式爲我工作,但我已經找到了通過改變複製命令的順序來回答,然後在粘貼解決它之後立即回覆。 非常感謝。 Tal

0

你粘貼到一個錯誤的範圍。 Worksheet.Paste()具有目的地和鏈接的參數,您的代碼僅使用目的地,應該是屬於該工作表的Range。因此,合適的線路應該是這樣的:

$Worksheetwb3.Paste($Range3) 
0

或者到過Vesper的解決方案:

$Worksheetwb3.Range("A1").Paste() | Out-Null 

# Paste special (as values) 
$Worksheetwb3.Range("A1").PasteSpecial(-4163) | Out-Null