Ich benutze C#, um eine Verbindung mit Excel über INTEROP.Schleife durch eine Spalte und Löschen von Zeilen, die nicht gehören
Wenn Sie INTEROP nicht kennen, sollte dies Sie nicht davon abhalten, diese Frage zu beantworten. Ich zerbreche mir Gehirn einen Algorithmus für das folgende versuchen herauszufinden:
Angenommen, ich habe eine Zeichenfolge string1="ALEX"
ich eine Liste haben:
AAAA
ALEX
ALEX
LIZA
LIZA
oder die Liste kann sein:
ALEX
ALEX
ALEX
LIZA
NANCY
Ich muss alle Vorkommen von Zeichenfolgen löschen, die NOT== ALEX
Ich will nicht von einer, dies zu tun, weil es
viel zu lange dauertdie Liste immer sortiert ist, und ich will nur die Startpositionen und Endpositionen in der Liste der Zeichenfolge, die ich brauche, um zu loszuwerden
ich habe eine Schleife, die jede Zeile und innerhalb der Schleife durchläuft:
if (cell.Value2.ToString()!= email && !foundStart) {
startpos = rCnt;
foundStart = true;
}
else if (cell.Value2.ToString() != email && foundStart) {
endPos = rCnt;
deleteRange = xlWorkSheet.get_Range("A" + startpos + ":" + "CO" + endPos, Type.Missing);
deleteRange = deleteRange.EntireRow;
deleteRange.Delete(Excel.XlDeleteShiftDirection.xlShiftUp);
foundStart = false;
}
Dies ist gar nicht funktioniert. bitte hilfe! Ihre Anleitung kann in Bezug auf den einfachen Algorithmus oder den spezifischen Code, den ich verwenden kann
bitte beachten Sie, dass, um alles zu löschen, ich einen RANGE geben muss, um zu löschen, anstatt Elemente einzeln zu löschen –
WENN die Liste AAAA, ALEX, ALEX, LIZA ist, ist es in Ordnung, den ersten zu löschen und nur a Bereich von 1: 1, aber wenn es AAA, AAA, ALEX ist, dann muss ich 1: 2 löschen –
Vielleicht bin ich ein Fehler, aber dieser Bereich überzeugt mich nicht. StartPos und EndPos sollen die Zeilennummern sein, oder? Und das gibt zum Beispiel einen get_Range ("A1: CO3")? Ist das ein gültiger Bereich? – Steve