使用Powershell在Excel中过滤和删除行

时间:2018-10-25 18:42:22

标签: excel powershell powershell-v3.0

我对Powershell还是很陌生,觉得这可能是一个简单的问题,但是我在程序中停留在尝试过滤excel电子表格,然后删除过滤的行的问题。

理想情况下,我想过滤从第3行开始的A列中所有未显示“ NO DATA”的行。 一旦拥有所有这些行,我便希望将其全部删除。 然后带回所有具有“ NO DATA”的行

我不知道如何编写脚本,以便过滤器从第2行开始,以及如何为所有不显示“ NO DATA”的行进行过滤

$worksheet.usedrange.autofilter(1, -ne "NO DATA", 3)
$worksheet.usedrange.offset(1,0).specialcells(12).Entirerow.Delete() 
$worksheet.ShowAllData()

当我尝试在我看来合理的方法时,出现2个错误,一个错误是在','之后的-ne之前的“ missing expression”,另一个错误是“无法获得range类的Auto filter属性” ((列号,文本,行号)部分。

$worksheet.usedrange.autofilter(1, "NO DATA", 2)
$worksheet.usedrange.offset(1,0).specialcells(12).Entirerow.Delete() 
$worksheet.ShowAllData()

此代码有效,但给了我错误的数据集(我想删除的所有内容都剩下了,它仍然从第1行而不是第2行进行过滤。

任何帮助都会很棒。

2 个答案:

答案 0 :(得分:1)

如果我理解正确,那么您正在寻找:

recompose

答案 1 :(得分:1)

能够找到一个解决方案,它实际上和我期望的一样简单:/

$SubCon_Vs_NOA.range("A2").autofilter(1,"<>NO DATA")
$SubCon_Vs_NOA.range("A3:A$rows").Entirerow.Delete() 
$SubCon_Vs_NOA.ShowAllData()