Powershell excel Zeilen entfernen
Hallo Commuity,
ich hab da mal ein Problem bei dem ich nicht weiterkomme.
Ich habe eine Excelliste mit ca 20 zeilen und bearbeite diese über Powershell. Dabei lass ich mir über :
$sheet.cells.item(2,19) ="=Sum(R:R)-Sum(R1)"
eine Summe ausgeben und möchte, dass die Tabelle gelöscht wird wenn diese Summe unter 200 ist.
Dafür habe ich folgendes:
$maxRows = $sheet.UsedRange.Rows.Count
for ($i = $maxRows; $i -ge 1; $i--) {
if ($sheet.Cells.Item(2, 19).Text -lt "200" ) {
$Range = $sheet.Rows.Item($i)
$Range.Delete()
}}
wenn R2 unter 200 ist wird die Tabelle gelöscht wie gewollt. Aber wenn die Tabelle über 200 ist soll er nichts löschen, es werden aber immer ca 10 zeilen trotzdem entfernt.
Kann mir jemand weiterhelfen?
Vielen Dank
ich hab da mal ein Problem bei dem ich nicht weiterkomme.
Ich habe eine Excelliste mit ca 20 zeilen und bearbeite diese über Powershell. Dabei lass ich mir über :
$sheet.cells.item(2,19) ="=Sum(R:R)-Sum(R1)"
eine Summe ausgeben und möchte, dass die Tabelle gelöscht wird wenn diese Summe unter 200 ist.
Dafür habe ich folgendes:
$maxRows = $sheet.UsedRange.Rows.Count
for ($i = $maxRows; $i -ge 1; $i--) {
if ($sheet.Cells.Item(2, 19).Text -lt "200" ) {
$Range = $sheet.Rows.Item($i)
$Range.Delete()
}}
wenn R2 unter 200 ist wird die Tabelle gelöscht wie gewollt. Aber wenn die Tabelle über 200 ist soll er nichts löschen, es werden aber immer ca 10 zeilen trotzdem entfernt.
Kann mir jemand weiterhelfen?
Vielen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 551804
Url: https://administrator.de/contentid/551804
Ausgedruckt am: 20.11.2024 um 02:11 Uhr
5 Kommentare
Neuester Kommentar
.Text -lt "200"
Naja, wenn ich Birnen mit Bananen vergleiche wundert das nicht 🙃..Value2 -lt 200
Du vergleichst hier zwei Strings mit einem numerischen Vergleichsoperator (-lt), dat klappt ned.
Moin
Du vergleichst hier zwei Strings mit einem numerischen Vergleichsoperator (-lt), dat klappt ned.
Doch, das klappt wunderbar und deshalb werden ja auch zehn Zeilen gelöscht. Man muss nur wissen, wie das funktioniert:
Liebe Grüße
Erik
Zitat von @143127:
.Text -lt "200"
Naja, wenn ich Birnen mit Bananen vergleiche wundert das nicht 🙃.> .Value2 -lt 200
>
Du vergleichst hier zwei Strings mit einem numerischen Vergleichsoperator (-lt), dat klappt ned.
Doch, das klappt wunderbar und deshalb werden ja auch zehn Zeilen gelöscht. Man muss nur wissen, wie das funktioniert:
1000 -lt 200 => $false
"1000" -lt "200" => $true
Liebe Grüße
Erik
1000" -lt "200" => $true
Schon klar, ist aber eben kein "numerischer" Vergleich mehr sondern ein Vergleich der Strings nach der jeweiligen Locale Konvention, mehr wollte ich damit nicht ausdrücken.1000 ist ja auch nicht kleiner als 200, bringt somit ein falsches Ergebnis..
An den TO:
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen, und Lösungen markieren. Merci.
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen, und Lösungen markieren. Merci.