Цитата ferget:
он останется висеть в памяти »
|
тогда так:
Код:

$string = "Иванов"
$file = "D:\1.xlsx"
$ciBK = [System.Threading.Thread]::CurrentThread.CurrentCulture
$ciUS = [System.Globalization.CultureInfo]'en-US'
[System.Threading.Thread]::CurrentThread.CurrentCulture = $ciUS
$xl = New-Object -COM Excel.Application
$xl.Visible = $False
$bk = $xl.Workbooks.PSBase.GetType().InvokeMember('Open',[Reflection.BindingFlags]::InvokeMethod,$null,$xl.Workbooks,"$file",$ci)
$ws = $bk.Worksheets.Item(1)
$rn = $ws.Range("A1").EntireColumn
$sc = $bk.PSBase.GetType().InvokeMember('Find',[Reflection.BindingFlags]::InvokeMethod,$null,$rn,$string,$ci)
$v0= $ws.Cells.Item($sc.Row,1).FormulaLocal
$v1= $ws.Cells.Item($sc.Row,3).FormulaLocal
$v2= $ws.Cells.Item($sc.Row,5).FormulaLocal
Write-Host "Имя: " $v0 "Данное1: " $v1 "Данное2: " $v2
$bk.PSBase.GetType().InvokeMember('Close',[Reflection.BindingFlags]::InvokeMethod,$null,$bk,"",$ci)
$xl.Quit()
[System.Threading.Thread]::CurrentThread.CurrentCulture = $ciBK
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($xl)
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($sc)
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($rn)
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($ws)
Ссылки по теме:
How Can I Use Windows PowerShell to Automate Microsoft Excel?
BUG: "Old format or invalid type library" error when automating Excel
Getting Rid of a COM Object (Once and For All)