Вы пытались, или вы говорите, что сделали, и это не сработало?
Если для API или DOM требуется передать параметр или несколько параметров, даже если он пустой / нулевой, его необходимо передать.PowerShell не контролирует это.
Вы предоставили ссылку на DOM / метод, и в нем должно быть конкретно указано, что он будет и не разрешать.
Беглый взгляд на статью, говорит, что требуется только один параметр, а все остальные необязательны.Ничто в связанном документе не утверждает, что они позиционные, кроме требуемого.Таким образом, вы можете передать в любом порядке или столько, сколько захотите.
Самый простой способ договориться о том, можете ли вы делать X или Y в документах Office, - это открытьфайл в Office, включите Macro Recorder, выполните шаги в графическом интерфейсе как обычно, позволяя рекордеру захватить все действия, затем посмотрите на получившийся VBA и преобразуйте его для использования в PowerShell.
Преобразование VBA для использованияв PowerShell - это хорошо продуманные вопросы и ответы.
Конвертировать код из Excel Macro в PowerShell
lrow = Range("G" & Rows.Count).End(xlUp).Row
Set MR = Range("G2:G" & lrow)
For Each cell In MR
If UCase(Trim(cell.Value)) = "FALSE" Then
cell.Interior.ColorIndex = 3
End If
Next
$objExcel = New-Object -ComObject Excel.Application
$objExcel.Visible = $true
$objExcel.DisplayAlerts = $false
$filePath = "c:\logs\2015-04-23.csv"
$xlsFilePath = Get-Item -Path $filePath | % { Join-Path (Split-Path $_ -Parent) "$($_.BaseName).xls" }
$workBook = $objExcel.Workbooks.Open($filePath)
$workSheet = $WorkBook.sheets | select -First 1
$xlup = -4162
$lrow = $workSheet.cells.Range("G" + $workSheet.Rows.Count).End($xlup).Row
$workSheet.cells.Range("G2:G" + $lrow) | % {
$value = $_.Text
if($value.ToUpper() -eq "TRUE"){
$_.Interior.ColorIndex = 3
}
}
$WorkBook.SaveAs($xlsFilePath, 18)
$objExcel.Quit()
Я помещаю это здесь только как напоминание, но основываясь на вашем постефрагмент, я собираюсь предположить, что вы уже знали это.Тем не менее, это на всякий случай.