【问题标题】:Check whether an Excel cell contains an item of an array检查 Excel 单元格是否包含数组项
【发布时间】:2018-10-26 16:40:48
【问题描述】:

我有一个 Excel 文件,其中有一列包含简短说明。我有一个数组,其中包含数字。我必须检测一个单元格是否包含任意数量的数组。

我的代码如下所示:

$CurrentCell = $openedworksheet.Cells.Item($i, 1).Value()
$Array='1', '2', '3', '4'

$a = 0
foreach ($numbers in $Array) {
    if ($numbers -match $currentCell) {
        $a = 1
    }
    if ($a -eq 0) {
       Write-Host $currentCell
    }
}

我尝试了很多变化,但都没有得到想要的结果。

【问题讨论】:

  • if($Array.Contains($currentCell))
  • 单元格也包含文字,数字只是其中的一小部分。
  • 将 $array 值更改为 '1'、'2' 等。然后使用 -Like 代替 -match。如果将第二个移出 foreach
  • 有了这样的东西,我建议先直接在 Excel 中弄清楚,这样它就会像你想要的那样响应,然后谷歌如何将特定的命令或方法“翻译”成 PS例如,Excel 有几十种方法可以检查一个字符串是否包含另一个字符串。您应该使用哪个取决于您的个人情况。 您已经获得了回答您的问题的解决方案,然后您为原始问题添加了更多标准。 先使用 Excel 找出您的确切问题,然后再使用 Google 搜索。如果您在任何地方都找不到解决方案,那么edit
  • Value 是一个属性,而不是一个方法,所以去掉.Value() 的括号。那就试试if ($numbers | ? {"$currentCell".Contains($_)}) {Write-Host $currentCell}

标签: arrays excel powershell


【解决方案1】:

非常感谢你们的帮助。最终的解决方案是:

$CurrentCell = $openedworksheet.Cells.Item($i, 1).text
$Array='1', '2', '3', '4'


foreach ($numbers in $Array) {
     if($CurrentCell.Contains($number)){
           write-host $currentCell
     }
}

:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 2018-04-21
    • 2017-11-24
    相关资源
    最近更新 更多