2016-10-21 6 views
0

Я не был в состоянии сделать работу такой простой командой $Range.Find($SearchString,LookAt:=xlWhole)метод Find имеет синтаксическую ошибку при использовании LookAt

возвращает ошибку синтаксиса. Без LookAt отлично работает, но мне нужно точное совпадение

+0

Какой тип данных представляет собой диапазон переменных? – guiwhatsthat

+0

excel range .... '$ range = $ ws.range ("B1"). EntireColumn' – LiRU

+0

Кажется, что запись '$ Search = $ Range.Find ($ SearchString, [Type] :: Missing, [Type] :: Missing, 1) ошибка исчезает – LiRU

ответ

0

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)‌​ 

 Смежные вопросы

  • Нет связанных вопросов^_^