Powershell Excel - Loop durch Array findet nicht alles
Hallo zusammen,
ich habe ein Array mit Spaltennamen die gelöscht werden sollen. Nun löscht er allerdings in meinem Test nur 2 von 3 Spalten die im Array vorkommen. Die Bezeichnung ist sauber. Warum löscht er den Vornamen nicht?
Nachname und lf-Nr. werden gelöscht aber der Vorname nicht. Es gibt auch keine Leerzeichen hinter oder vor der Bezeichnung.
ich habe ein Array mit Spaltennamen die gelöscht werden sollen. Nun löscht er allerdings in meinem Test nur 2 von 3 Spalten die im Array vorkommen. Die Bezeichnung ist sauber. Warum löscht er den Vornamen nicht?
$SpalteLoeschen = 'Nachname','Vorname','If-Nr.'
$MaxAnzSpalten = $xls.UsedRange.Columns.Count
For($i=1; $i -lt $MaxAnzSpalten; $i++)
{
if($xls.Cells.Item(1,$i).Text -in $SpalteLoeschen)
{[void]$xls.Cells.Item(1,$i).EntireColumn.Delete()}
}
Nachname und lf-Nr. werden gelöscht aber der Vorname nicht. Es gibt auch keine Leerzeichen hinter oder vor der Bezeichnung.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 621117
Url: https://administrator.de/contentid/621117
Ausgedruckt am: 05.11.2024 um 17:11 Uhr
3 Kommentare
Neuester Kommentar
Weil du die Spalte ja zwischen drin löschst und dann stimmt für alle folgenden Spalten der Index nicht mehr, macht's jetzt bei dir klick ?!
Ein Einzeiler...
EDIT: Hat wohl Klick gemacht .
Ein Einzeiler...
$xls.UsedRange.Columns | ?{$_.Cells[1].Text -notin $SpaltenBehalten} | sort Column -Descending | %{$_.Delete()}
EDIT: Hat wohl Klick gemacht .