计算后在其他列中追加Excel单元格值

时间:2018-12-28 13:41:28

标签: excel powershell

在对另一列的单元格值执行计算之后,我希望更新Excel文件中的一列。基本上,我将首先提示用户要求他们回答“是”或“否”。如果他们说“是”,我需要将100添加到Y列的所有单元格中,并将输出放置在Z列中。仅供参考,Y列已包含预填充的值。我当前正在生成错误

Method invocation failed because [System.DBNull] does not contain a method
named 'op_Addition'.
At line:40 char:13
+             $cell.Value2 = $cell + $adjustment
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (op_Addition:String) [], RuntimeException
    + FullyQualifiedErrorId : MethodNotFound
$adjustment = 100

$Question = Read-Host "Do you have money? "
while ($worksheet.Range("Y9:Y705") -ne $null) {
    if ($Question -eq 'Yes' -or $Question -eq 'yes') {
        foreach ($cell in $worksheet.Range("Y9:Y705").Text) {
            $cell.Value2 = $cell + $adjustment
            $row = 1
            $column = 1
            Write-Host $worksheet.Range("Z9:Z705").Item($cell.Value2).value()
        }
    }
}

1 个答案:

答案 0 :(得分:2)

该错误消息有点误导。 $worksheet.Range("Y9:Y705").Text不会返回您认为的结果。您可能打算遍历该范围内单元格的内容,但实际上您是在尝试检索Text对象(它是{{1}类型的对象)的Range属性}),然后遍历该对象。

要解决此问题,您需要遍历范围中的元素。

更改此:

System.DBNull

对此:

foreach ($cell in $worksheet.Range("Y9:Y705").Text) {
    $cell.Value2 = $cell + $adjustment
    ...
}

问题将消失。