簡體   English   中英

使用Powershell在Excel中過濾和刪除行

[英]filter for and delete rows in excel using powershell

我對Powershell還是很陌生,覺得這可能是一個簡單的問題,但是我在程序中嘗試過濾Excel電子表格,然后刪除過濾后的行時遇到了麻煩。

理想情況下,我想過濾從行3開始的A列中所有未說“無數據”的行。一旦我擁有所有這些行,我便希望將其全部刪除。 然后帶回所有具有“ 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過濾器屬性”,指的是(Column #,文本,行#)部分。

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

這段代碼有效,但是給了我錯誤的數據集(我想刪除的所有內容都剩下了,它仍然從第1行而不是第2行進行過濾。

任何幫助都會很棒。

如果我理解正確,那么您正在尋找:

$StartRow = 3
$RowCnt = $worksheet.UsedRange.Rows.Count
$worksheet.Range("A$($StartRow):A$($RowCnt)").AutoFilter(1,"<>NO DATA")
$worksheet.usedrange.offset($StartRow,0).specialcells(12).Entirerow.Delete() 
$worksheet.ShowAllData()

能夠找到一個解決方案,實際上就像我期望的那樣簡單:/

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM