gpt4 book ai didi

excel - Powershell查找Excel单元格引用

转载 作者:行者123 更新时间:2023-12-03 01:59:44 24 4
gpt4 key购买 nike

我使用以下 powershell 代码在 Excel 文档中搜索字符串,并根据是否找到返回 true 或 false。

if (test-path $filePath) {
$wb = $xl.Workbooks.Open($filePath)
if ([bool]$xl.cells.find("German")) {$found = 1}
}

我希望能够获取字符串的单元格引用(如果找到),但我无法弄清楚或在谷歌上找到答案。你能帮忙吗?

最佳答案

虽然有一种方法可以在整个工作簿中搜索某个值,通常是 Range.Find method在工作表上执行。您正在为工作簿设置一个 var,但仍使用应用程序作为搜索。您应该从工作簿中获取要搜索的工作表,并将其用作查找操作的目标。

以下是对 PS1 的一些修改建议。

$filePath = "T:\TMP\findit.xlsx"
$xl = New-Object -ComObject Excel.Application
$xl.Visible = $true
if (test-path $filePath) {
$wb = $xl.Workbooks.Open($filePath)
$ws = $xl.WorkSheets.item("sheet1")
if ([bool]$ws.cells.find("German"))
{
$found = 1
write-host $found
write-host $ws.cells.find("German").address(0, 0, 1, 1)
}
}

要继续搜索所有出现的情况,请使用 Range.FindNext method直到循环回到原始单元格地址。

$filePath = "T:\TMP\findit.xlsx"
$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.cells.find("German")
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))
}
}

由于缺少很多代码,因此很难提供更多的概括性内容​​。我已经用自己的测试环境填补了缺失的信息。

关于excel - Powershell查找Excel单元格引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32866921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com