2013-05-05 78 views
0

使用Powershell 2.0我試圖將公式的結果複製到另一個工作表中。爲了做到這一點,我需要使用粘貼特殊(否則我得到#value錯誤)。 但是,下面的代碼不起作用。第一個塊只是一個正常的粘貼工作正常,但第二個塊有特殊的粘貼,它不起作用。我得到的錯誤如下。特別粘貼powershell和excel

這個問題有人知道這個錯誤意味着什麼或使用Powershell和Excel做特殊粘貼的最佳方法是什麼?

作品:

$worksheet.activate() 
$sessionidcopyrange = $worksheet.Range("J1").EntireColumn 
$sessionidcopyrange.copy() 
$worksheet2.activate() 
$sessionidpasterange =$worksheet2.Range("A1") 
$worksheet2.paste($sessionidpasterange, $false) 

不起作用:

$worksheet.activate() 
$codecopyrange = $worksheet.Range("Q1").EntireColumn 
$codecopyrange.copy() 
$worksheet2.activate() 
$codepasterange = $worksheet2.Range("B1") 
$worksheet2.pastespecial(-4163, $false) 

Exception calling "PasteSpecial" with "2" argument(s): "PasteSpecial method of 
Worksheet class failed" 
At line:33 char:25 
+ $worksheet2.pastespecial <<<< (-4163, $false) 
+ CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
+ FullyQualifiedErrorId : ComMethodTargetInvocation 
+0

我的想法是,你還沒有,在你的代碼的其他地方使用任何辦公室/ excel互操作程序集或Excel.application,你應該看看那些。 – 2013-05-05 20:28:21

+0

我有這樣的:'我的代碼 – RedRaven 2013-05-05 20:56:31

+0

頂部的'$ excel = New-Object -comobject excel.application'不會是'$ codepasterange.pastespecial(-4163,$ false)' – jbockle 2013-05-06 14:34:53

回答

0

例子:

$Dest = $Excel.Workbooks.Add() 
$Dest.ActiveSheet.Range("B:C").copy() 
$Dest.ActiveSheet.Range("D1").Select() 
$Dest.ActiveSheet.Range("D1").PasteSpecial(-4163)