Laden...

Erste Leere Zeile am Anfang einer Spalte finden

Erstellt von Dirtysmoke vor 7 Jahren Letzter Beitrag vor 7 Jahren 2.139 Views
D
Dirtysmoke Themenstarter:in
7 Beiträge seit 2016
vor 7 Jahren
Erste Leere Zeile am Anfang einer Spalte finden

Abend zusammen, ich habe ein kleines Problem und zwar geht es um folgendes ich habe eine Mitgliederliste die ich als String einlese und Splite und dann in ein ExcelSheet einfüge, diese Funktioniert auch alles soweit ganz gut.
Nun möchte ich diese Liste aber immer wieder erweitern um eine neue Spalte.
Das Heist ich füge am zb. 16.11 eine Spalte mit Mitgliedern ein und dann wieder am 20.12 dabei soll die erste Spalte erhalten bleiben und automatisch erkannt werden das die zweite spalte noch frei ist das dort die 2te liste reingeschrieben werden kann.

Ich hoffe mit kann jemand bei meinem Problem weiterhelfen.


            using Microsoft.Office.Interop.Excel;

            int zelle = 1;
            int counter = 1;
            int spalte = 0;
            eingabe = tbMitgliederListe.Text;

            if (excelSheet.Cells.get_Range(1, counter).Value2 != null)
            {
                counter++;
            }
            spalte = counter;

            do
            {
                eingabe = eingabe.Remove((indexStart - 1), (indexEnd + 2 - indexStart));
                indexStart = eingabe.IndexOf("(");
                indexEnd = eingabe.IndexOf(")");
            } while (indexStart > 0);


            ausgabe = eingabe.Split(stringSeperator, StringSplitOptions.RemoveEmptyEntries);

            for (int j = 0; j < ausgabe.Length; j++)
            {
                ausgabe[j] = ausgabe[j].Trim(' ');
            }

            for (int i = 0; i < ausgabe.Length; i++)
            {
                zelle++;
                excel.DisplayAlerts = true;
                excelSheet.Cells[zelle, spalte] = ausgabe[i];                                           
            }
1.029 Beiträge seit 2010
vor 7 Jahren

Hi,

und was genau funktioniert daran nicht?

Grundsätzlich - die Indizes waren in Office wenn ich mich recht erinnere 1 und nicht 0-basiert.

Was ich vorschlagen würde:

Ermittle die letzte benutzte Spalte mit Excel-Funktionen, addiere eins drauf - und schon hast du deine spalte...

Folgender VBA-Code hilft beim Finden der letzten Spalte - musste nur noch auf C# umschreiben:

letztespalte = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Column

LG

D
Dirtysmoke Themenstarter:in
7 Beiträge seit 2016
vor 7 Jahren

Das problem ist das dieser programm auschnit nicht das tut was er soll und mir nicht die erste leere Splate zurückliefert sondern das Programm zum absturz bringt.

            if (excelSheet.Cells.get_Range(1, counter).Value2 != null)
            {
                counter++;
            }
            spalte = counter;
1.029 Beiträge seit 2010
vor 7 Jahren

Dann würde ich an deiner Stelle dieser Schleife mal den von mir geposteten Code übersetzen.

Hatte mit Abrufen von Value2 von Zellen die nicht belegt sind auch schon Ärger.

LG