PowerShell не использует синтаксис VBA. Вот почему вы получаете сообщение об ошибке. Кроме того, вам нужно определить параметры, которые вы пропускаете вместо своих значений по умолчанию в вызовах метода Excel. Это делается с [Type]::Missing
, как вы обнаружили.
Что касается простых действий, которые вы можете сделать, это использовать целочисленное представление. 1 в этом случае для xlWhole
.
Если вы не хотите использовать магическое число, которое Вы можете определить свои собственные константы с простой переменной
$xlWhole = 1
Вы можете, таким образом, использовать действительную константу, если добавить сборку, содержащую эти константы.
Add-Type -Assembly 'Microsoft.Office.Interop.Excel'
$Range.Find($SearchString,[Type]::Missing,[Type]::Missing,[Microsoft.Office.Interop.Excel.XlLookAt]::xlWhole)
Какой тип данных представляет собой диапазон переменных? – guiwhatsthat
excel range .... '$ range = $ ws.range ("B1"). EntireColumn' – LiRU
Кажется, что запись '$ Search = $ Range.Find ($ SearchString, [Type] :: Missing, [Type] :: Missing, 1) ошибка исчезает – LiRU