在对另一列的单元格值执行计算之后,我希望更新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()
}
}
}
答案 0 :(得分:2)
该错误消息有点误导。 $worksheet.Range("Y9:Y705").Text
不会返回您认为的结果。您可能打算遍历该范围内单元格的内容,但实际上您是在尝试检索Text
对象(它是{{1}类型的对象)的Range
属性}),然后遍历该对象。
要解决此问题,您需要遍历范围中的元素。
更改此:
System.DBNull
对此:
foreach ($cell in $worksheet.Range("Y9:Y705").Text) {
$cell.Value2 = $cell + $adjustment
...
}
问题将消失。