在Excel中使用Powershell查找某个名称(使用循环或不使用循环)

我无法在Excel中使用Powershell在Excel(行)列表中运行循环。 我正在尝试扫描某个名称,使用$ var在Excel中进行search。 你能帮我解决这个问题吗? 谢谢。

$var="410043" $objExcel = New-Object -ComObject Excel.Application $objExcel.Visible= $False $WorkBook = $objExcel.Workbooks.Open("C:\Users\step.k\Desktop\Copy of TEST24.xlsx") #$WorkBook.sheets | Select-Object -Property Name $Workbook.Worksheets.Item("sheet1").Activate() $Range = $Workbook.Range("B1: B14492").EntireRow $Search = $Range.find($var) $var 

以下.PS1将使用Range.Find / Range.FindNext方法列出所有发生的事件

 $filePath = "T:\TMP\find_410043.xlsx" $var = "410043" $xl = New-Object -ComObject Excel.Application $xl.Visible = $true if (test-path $filePath) { $wb = $xl.Workbooks.Open($filePath) $ws = $wb.WorkSheets.item("sheet1") $rc1 = $ws.Range("B1:B14492").entirerow.find($var) if ($rc1) { $found = 1 $addr = $rc1.address(0, 0, 1, 0) do { $rc1 = $ws.cells.findnext($rc1) write-host $rc1.address(0, 0, 1, 0) } until ($addr -eq $rc1.address(0, 0, 1, 0)) } } $wb.close() $xl.quit() 

请注意,第一次写入命令窗口实际上是第二次出现。 第一个是最后列出,然后地址匹配,所以循环退出。 如果只有一个,那就没有区别。