Eccezione da HRESULT: 0x800A03EC PowerShell

Dopo aver eseguito questo comando PowerShell che incolla una formula dentro una cella di un file Excel:

$excelObject = New-Object -ComObject Excel.Application

$targetWorkbook = $excelObject.Workbooks.Open($myFile)

$firstSheet = $targetWorkbook.Worksheets.Item(1)

$firstSheet.Cells.Item(6,2).Formula = "=SE(VAL.ERRORE(MEDIA(..."

appariva il seguente errore:

Eccezione da HRESULT: 0x800A03EC
In riga:1 car:1
+ $firstSheet_N.Cells.Item(6,2).Formula = "=SE(VAL.ERRORE(MEDIA(..."
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (:) [], COMException + FullyQualifiedErrorId : System.Runtime.InteropServices.COMExcep tion

Dopo qualche ricerca e qualche intuizione, ho ricondotto l’errore alle impostazioni internazionali di Excel.

Ho modificato l’ultima riga nel modo seguente:

$firstSheet.Cells.Item($r,2).FormulaLocal = "=SE(VAL.ERRORE(MEDIA(..."

Come si vede, al posto di .Formula ho usato .FormulaLocal che fa funzionare il passaggio di stringhe con le impostazioni internazionali locali (inclusi i separatori,…).

Ho rilanciato lo script e ha funzionato tutto correttamente.