删除具有特定值的行

Posted

技术标签:

【中文标题】删除具有特定值的行【英文标题】:Delete rows with specific values 【发布时间】:2021-12-14 12:43:59 【问题描述】:

我正在使用我的脚本的这一部分来删除有值的每一行:admin

$i = 1

Do 
    If ($worksheet.Cells.Item($i, 1).Value() -eq 'admin') 
      
            $objRange = $worksheet.Cells.Item($i, 5).EntireRow
            $objRange.Delete()
        $i -= 1 
      
      $i += 1


While ($worksheet.Cells.Item($i,1).Value() -ne $null)

我想知道如何添加一些不同的值并删除更多的行,例如:系统、计算机...

谢谢!

【问题讨论】:

我看到您正在执行$i -= 1 以删除重复项。这是个好主意,但更好的办法是从头跑到尾。为什么这样更好?好吧,在大多数情况下,您会说“从 start_index 到 end_index”,当您删除条目时,您的“end_index”可能会越界。在从头到尾工作“end_index 回到 start_index”时,您永远不会遇到边界问题。 一种方法是使用-in 运算符来查看.Value() 字符串是否在运算符另一侧的列表中。看看Get-Help about_Comparison_Operators 【参考方案1】:

使用-in 集合包含运算符:

$rowValuesToDelete = 'admin','system','computer'

if($worksheet.Cells.Item($i, 1).Value() -in $rowValuesToDelete) 
  # ...

【讨论】:

非常感谢,这正是我需要的!

以上是关于删除具有特定值的行的主要内容,如果未能解决你的问题,请参考以下文章

删除特定列中具有空白值的行

python 在Pandas中删除具有特定值的行(Python)

删除同一列或连续行的另一列中具有特定值和缺失值的行

Pandas DataFrame 删除带有特定值的行

如何删除具有太多 NULL 值的行?

SQL删除存在值的行和具有该值的后续列