0

使用 Powershell 2.0 我试图将一个工作表中的公式结果复制到另一个工作表。为了做到这一点,我需要使用特殊粘贴(否则我会得到 #value 错误)。但是,以下代码不起作用。第一个块只是一个正常的粘贴,可以正常工作,但第二个块有特殊的粘贴,它不起作用。我得到的错误如下。

问题有谁知道这个错误是什么意思,或者使用 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
4

2 回答 2

2

例子:

$Dest = $Excel.Workbooks.Add()
$Dest.ActiveSheet.Range("B:C").copy()
$Dest.ActiveSheet.Range("D1").Select()
$Dest.ActiveSheet.Range("D1").PasteSpecial(-4163)
于 2017-06-13T03:16:09.603 回答
0

使用 PowerShell 和 Excel 进行特殊粘贴:

第二个值是 type XlPasteSpecialOperation

$worksheet2.pastespecial(-4163, $false)
应该
$worksheet2.pastespecial(-4163, xlPasteSpecialOperationNone)

于 2020-05-08T19:22:07.970 回答