Hallo,
ich habe derzeit ein kleines Problem, finde aber trotz einiger Tage suchen keinen Denkfehler, wieso mein Vorhaben nicht geht.
Ich möchte in einer Funktion eine Excel Datei öffnen und zu einem bestimmten Worksheet springen und dann an einer bestimmten Stelle etwas einfügen.
Ich kann dabei Problemlos die Excel Datei laden und an Stelle xyz etwas ändern und einfügen. Was nicht geht, zum gewünschten Worksheet zu springen.
excelFVX = "file://" + item.folder;
Microsoft.Office.Interop.Excel.Application excel = null;
Workbook wb = null;
excel = new Microsoft.Office.Interop.Excel.Application();
excel.Visible = true;
wb = excel.Workbooks.Open(excelFVX, 0, false, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
Sheets sheets = wb.Worksheets;
Worksheet ws = (Worksheet)sheets.get_Item("FVX" + numberFVX);
Excel verbleibt einfach strikt beim ersten Worksheet bzw. bei dem, wo excel geschlossen wurde. Übergebe ich einen Worksheet Namen der nicht vorhanden ist, bekomme ich logischerweise eine Fehlermeldung, das dieses Worksheet nicht vorhanden ist. Aber wieso springt er dann beim laden nicht zu diesem?
Hi,
nur weil dein Code jetzt eine Referenz geholt hat weiß Excel halt noch lange nicht, dass er nen anderes Sheet anzeigen soll...
Ich denke ws.Activate(); sollte hier schon den gewünschten Effekt erreichen.
LG
Hallo canada,
bei solchen Problemen kannst du immer davon ausgehen, dass du nicht der erste bist, der davor steht. Das wechseln von Worksheets ist ja eine Kernfunktionalität. Wenn du danach suchst hast du oft schneller eine Lösung.
Google-Suche nach C# excel select worksheet
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Hallo, probier mal das hier:
//// Sheet über den Namen ansprechen
XlSheet = (Excel.Worksheet)XlBook.Worksheets.get_Item("Arbeitsplan");