Laden...

Wie kann ich in Excel eine Row löschen?

Erstellt von BuffaloBill vor 7 Jahren Letzter Beitrag vor 7 Jahren 2.182 Views
B
BuffaloBill Themenstarter:in
10 Beiträge seit 2015
vor 7 Jahren
Wie kann ich in Excel eine Row löschen?

Tja - wie löscht man den eine Reihe (ROW) in Excel?
ODBC fällt flach, da kann man nicht löschen.

Also vieleicht Excel API?


using Excel = Microsoft.Office.Interop.Excel{
            xlApp = new Excel.Application();
            xlWorkBook = xlApp.Workbooks.Open(MeinExcel.xlsx);
            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
            Excel.Range me = xlWorkSheet.get_Range("A", "A");
            me.Delete(Excel.XlDirection.xlToLeft);
}

Klappt nich. Ich hab schon andere Lösungen probiert seitere aber regelmässig an dem Problem das mir die gesammtzahl der Einträge nicht bekannt ist. Ja sicher: in meinem Beispiel kann ich nachzählen, aber es soll ja nachher mit JEDEM belibigen Excel funktioniert.

Ich will mich hier nicht auf die Excel API versteiffen. Falls jemand eine andere Libary kennt, dann nur her damit 😃

1.029 Beiträge seit 2010
vor 7 Jahren

Hi,

"klappt nicht" ist immer eine ungeschickte Fehlerbeschreibung.

Was denn nicht?

Grundsätzlich kann ich dir empfehlen:
Excel verfügt über eine Makro-Aufzeichnungsfunktion in den Entwickleroptionen.

Zeichne auf - mit Alt+F11 kannst du dir den generierten Code anschauen und auf C# anpassen...

LG

PS: Wenn du die Spalte "A" auswählst - aber eine Reihe löschen willst - hast du irgendwas am Code nicht richtig.

PPS: So findet man die letzte Zeile und/oder Spalte (ACHTUNG - nimm den Code unter "Notbremse"):
http://www.excel-ist-sexy.de/letzte-zeile-oder-spalte/

B
BuffaloBill Themenstarter:in
10 Beiträge seit 2015
vor 7 Jahren

Eh ja - eine spalte natürlich 😃 Ich habs schon wieder verwechselt.

Geht nicht meint - Die Spalte ist einfach immer noch da 😃 Kein fehler, keine Exception gar nicht. Der Code geht durch wie geöhlt, aber die Spalte ist immernoch da.

Allerdings hab ich jetzt herausgefunden wie es geht.....


xlWorkSheet.Rows[1].Delete(Excel.XlDirection.xlToLeft);

Zu dumm nur, dass ich eine Collumn, und keine ROW löschen wollte 😄

H
523 Beiträge seit 2008
vor 7 Jahren

Sowas lässt sich ganz einfach rausfinden in dem man in Excel die Makroaufnahme startet, die gewünschte Aktion ausführt (z. B. eine Zeile löschen), die Makroaufnahme wieder stoppt und sich dann den VBA-Code anschaut.

1.040 Beiträge seit 2007
vor 7 Jahren

Allerdings hab ich jetzt herausgefunden wie es geht.....

xlWorkSheet.Rows[1].Delete(Excel.XlDirection.xlToLeft);  

Zu dumm nur, dass ich eine Collumn, und keine ROW löschen wollte 😄

Kannst du den Code nicht einfach auf eine Column ummünzen? Alá

xlWorkSheet.Columns[1].Delete(...);

=)

D
985 Beiträge seit 2014
vor 7 Jahren

Fehlt da nicht noch das Speichern des Excel-Dokuments? 🤔