我尝试了很多选项,将从其他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()
先谢谢了, 塔尔
答案 0 :(得分:0)
你正在进入一个错误的范围。 Worksheet.Paste()
包含目标和链接参数,您的代码仅使用目标,应该是属于该工作表的Range
。因此,正确的界限应为:
$Worksheetwb3.Paste($Range3)
答案 1 :(得分:0)
替代Vesper的解决方案:
$Worksheetwb3.Range("A1").Paste() | Out-Null
# Paste special (as values)
$Worksheetwb3.Range("A1").PasteSpecial(-4163) | Out-Null
答案 2 :(得分:0)
非常感谢你的答案,但这些对我来说并不适用,但是我通过更改复制命令的顺序找到了答案,然后在粘贴为我解决之后立即找到答案。 非常感谢你。 塔尔