Excelファイルで特定の値(失敗したVLOOKUPの「#N/A」)を検索するPowerShellスクリプトがあります。その行を含めた後の行はすばやく削除されます。PowerShell - 開始行を見つけた後にExcelから範囲を削除する
私がこれまで行ってきた:
$sheetRange = $sheetData.UsedRange
$colRange = $sheetData.Range("F1")
[void] $sheetRange.Sort($colRange)
$fileWorking.Save()
$strFinder = "#N/A"
$rngSearch = $sheetData.Range("F1").EntireColumn
$txtFound = $rngSearch.Find($strFinder)
$RowFound = ($txtFound.Row)
for (($i = $RowFound); ($i -le $rowsTrans); $i++)
{
$currRow = $sheetData.Cells.Item($i).EntireRow
[void]$currRow.Delete()
}
$fileWorking.Save()
問題があり、そこに20万行を超えている、と私は時に代わりに1行の全範囲を削除する必要があります。構文についていくつか混乱していますが、これを実現する適切な構文や方法を理解することはできません。
明らかに、for
ループが必要です。$RowFound
と$rowsTrans
の間の範囲全体を設定する必要がありますが、どのように行われますか?
すべてのアドレスを含む連結文字列を作成し、それを使用して削除できますか?例えば'... Range(" A2、A4、A10、A19 ")。entireRow.Delete'これは、範囲オブジェクトの和集合のような範囲オブジェクト定義を使用します。 – Jeeped
@Jeeped「グループ」の範囲を割り当てるのが間違っていたときの私の構文です。私は自分でそれを理解しましたが、あなたの答えは私の過ちと同じです。私は... Range( "A" + $ RowFound + ":A" + $ rowTrans)( ":"に注意してください)をしようとしていました。上記のように私の構文を訂正するためのあなたのコメントを回答に改革しますか?私は同意しますか? ;) – gravity