欢迎任何帮助。 我使用PowerShell来操作Excel工作表。出于某种原因,这有效。
contentView
但这不是
for($o = 1; $o -le $firstRowMes.Length + $dagenInDeMaand; $o++){
if($o -ne $exception)
{
$ws.Cells.Item($o, 3) = $firstRowMes[$index]
$ws.Cells.Item($o, 4) = $betweenMes[$index]
$ws.Cells.Item($o, 5) = $Lastmes[$index]
$ws.Cells.Item($o, 7) = "=C" + $o + "/F" + $o
$ws.Cells.Item($o, 6) = "=SUM(C" + $o + ":E" + $o + ")"
$index++
}
else
{
$exception = ($exception + $applicationArray.Length +1)
}
}
如果我直接将输出插入excel,它可以正常工作。 我得到的完整错误是:
HRESULT的异常:0x800A03EC在 C:\ Users \ yniasr \ Documents \ Argenta \ Autoreportdagen.ps1:202 char:5
+ $ ws.Cells.Item($ index,11).Formula =" = AVERAGE(" + $ begintrendGet ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
+ CategoryInfo:OperationStopped:(:) [],COMException
+ FullyQualifiedErrorId:System.Runtime.InteropServices.COMException
我在这里看到了一些关于它的帖子,但他们的解决方案都没有适用于我的代码。
非常感谢!
答案 0 :(得分:1)
我怀疑是因为公式中的;
落后了。尝试使用$begintrendGetallen.trim(";")
您的索引初始化应该在循环之外。否则,只要循环运行,它就会重新设置为2
。
$index = 2
for($g = 1; $g -le $applicationArray.Length;$g++){
$begintrendGetallen = ""
for($i = 0; $i -le $eerstePeriode-1; $i++){
$begintrendGetallen = $begintrendGetallen + "G" + (1+$g+(9*$i)).ToString() + ";"
}
$begintrendGetallen = $begintrendGetallen.trim(";")
$ws.Cells.Item($index, 11).Formula = "=AVERAGE(" + $begintrendGetallen + ")"
$index++
}
处理PowerShell / Excel时, $i=0
很不稳定,因为使用非零数组经常遇到Excel问题。我认为它在你的代码中没有引起任何问题。