删除具有特定值的行
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)
# ...
【讨论】:
非常感谢,这正是我需要的!以上是关于删除具有特定值的行的主要内容,如果未能解决你的问题,请参考以下文章