从Powershell粘贴到Excel中

从Powershell粘贴到Excel中,excel,powershell,paste,Excel,Powershell,Paste,我尝试了很多方法将从其他Excel工作簿复制的信息粘贴到我的新工作簿中,但没有成功(范围很大,超过3000行)。 请参阅我的脚本样本,我将感谢您的建议: $objExcel = New-Object -ComObject Excel.Application $objExcel.Visible = $false $objExcel.displayAlerts = $false $Src = [Environment]::GetFolderPath('Desktop')+'\New.xlsx' $F

我尝试了很多方法将从其他Excel工作簿复制的信息粘贴到我的新工作簿中,但没有成功(范围很大,超过3000行)。 请参阅我的脚本样本,我将感谢您的建议:

$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()
提前感谢,
Tal

您粘贴到了错误的范围
Worksheet.Paste()
具有destination和link参数,您的代码仅使用destination,它应该是属于该工作表的
范围。因此,正确的行应该是:

$Worksheetwb3.Paste($Range3)

作为Vesper解决方案的替代方案:

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

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

非常感谢您的回答,但不知怎么的,这些都不适用于我,但我已经通过更改命令的顺序找到了答案。复制后,粘贴立即为我解决了问题。 非常感谢你。
好未来

您能更具体地说明哪些不起作用吗?你知道它成功地走了多远吗?如果在
A1
中有一个值而不是多列范围,脚本是否成功?我经常与PowerShell和Excel打交道,但如果没有更详细的信息,我无法提供帮助。粘贴对我无效“$Worksheetwb3.Paste($Range.Value2)”