C Sharp - xlsRange.sort beim zweitem Aufruf error lierfert
Hallo,
warum taucht einen Fehler beim zweiten Aufruf von folgender Funktion:
[Edit Biber] Codeformatiert [/Edit]
warum taucht einen Fehler beim zweiten Aufruf von folgender Funktion:
public static void sortByQty()
{
Excel.Range rngSort = ws.get_Range("I5", missing);
string rngSortVal = Convert.ToString(rngSort.Value2);
rngSort.Activate();
rngSort.Cells.Select();
rngSort.Sort(rngSort.Columns[1, missing],
Excel.XlSortOrder.xlDescending,
rngSort.Columns[2, missing],
missing,
Excel.XlSortOrder.xlDescending,
missing,
Excel.XlSortOrder.xlDescending,
Excel.XlYesNoGuess.xlYes,
missing, missing,
Excel.XlSortOrientation.xlSortColumns,
Excel.XlSortMethod.xlPinYin,
Excel.XlSortDataOption.xlSortTextAsNumbers,
Excel.XlSortDataOption.xlSortTextAsNumbers,
Excel.XlSortDataOption.xlSortTextAsNumbers);
}
[Edit Biber] Codeformatiert [/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 172282
Url: https://administrator.de/contentid/172282
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
5 Kommentare
Neuester Kommentar
Moin KaiserQQ7,
du hast ja nun vor einem Monat hier im selben Bereich eine baugleiche Frage Eine Excel Tabelle sortieren nach Spalte I ab der Zeile 5 absteigend using c sharp gepostet.
Vor einem Monat lautete die Zustandsbeschreibung bzw. das konkrete Problem, an dem wir Helferlein ansetzen könnten
Damals hattest du noch in einem Kommentar ergänzt:
Jetzt hast du einen kompletten Monat an diesem Add-In rumgeschraubt und dieses "SortbyQty()"-Funktiönchen hat nun
Bitte, damit wir vor den ganzen rasant nahenden Weihnachtseinkäufen fertig werden:
Bitte gib uns wenigstens ene Chance, irgendwelche sinnvollen Antworten zu versuchen.
Grüße
Biber
P.S. Wegen des Meister-Yoda-Titels
Ja, wo tauchen se denn?!?
--> Falls du der deutschen Sprache nicht so geläufig bist oder umgekehrt, kannst du auch gern auf denglisch oder whattheheck fragen.
Meine PraktikantInnen können auch französisch - beschreib also den Fehler in irgendeiner ###-Sprache.
Aber beschreib ihn bitte.
du hast ja nun vor einem Monat hier im selben Bereich eine baugleiche Frage Eine Excel Tabelle sortieren nach Spalte I ab der Zeile 5 absteigend using c sharp gepostet.
Vor einem Monat lautete die Zustandsbeschreibung bzw. das konkrete Problem, an dem wir Helferlein ansetzen könnten
ich habe die folgende Code gefunden aber taucht ein fehler:
Damals hattest du noch in einem Kommentar ergänzt:
Zitat von @KaiserQQ7:
ich mache gerade einen Add-In für Excel und ich brauche diese Funktion innerhalb der Code.
ich mache gerade einen Add-In für Excel und ich brauche diese Funktion innerhalb der Code.
Jetzt hast du einen kompletten Monat an diesem Add-In rumgeschraubt und dieses "SortbyQty()"-Funktiönchen hat nun
- einen Namen, damit es aufgerufen werden kann
- Codeformatierung, damit wir es lesen können
- ein paar just for fun-Variablen, die gesetzt und nie benötigt werden
- und immer noch denselben Fehler, den wir schon vor 4 Wochen nicht genannt bekamen.
Bitte, damit wir vor den ganzen rasant nahenden Weihnachtseinkäufen fertig werden:
- Wie zeigt sich oder was ist der Fehler? Hat der einen Fehlercode/Fehlertext?
- wie/von wo wird die Funktion aufgerufen? Von einem Ribbon-Button? Über Kontext-Menü? Aus der Garage über WLAN?
- sprechen wir von der gleichen Excel-Version, nämlich Excel 93 für Solaris? Oder benutzt du eine andere Version, wenn ja --> WTAF??
Bitte gib uns wenigstens ene Chance, irgendwelche sinnvollen Antworten zu versuchen.
Grüße
Biber
P.S. Wegen des Meister-Yoda-Titels
C Sharp - xlsRange.sort beim zweitem Aufruf error lierfert
und des wiederholten orientierungslosen Auf-, Ab- oder Wegtauchens dieser angefangenen Sätzewarum taucht einen Fehler beim zweiten Aufruf von folgender Funktion:
Ja, wo tauchen se denn?!?
--> Falls du der deutschen Sprache nicht so geläufig bist oder umgekehrt, kannst du auch gern auf denglisch oder whattheheck fragen.
Meine PraktikantInnen können auch französisch - beschreib also den Fehler in irgendeiner ###-Sprache.
Aber beschreib ihn bitte.
Moin KaiserQQ7,
danke für die Infos.
Als ch deinen Eroffnungspost überflogen hatte (und deine jetzt genauere Fehlerbeschreibung noch nicht kannte) hatte ich drei vage Verdachtsmomente.
Könntest du bitte mal die Zeile "String mgSortval=ConvertToString(...." auskommentieren, um einen der drei Fälle auzuschliessen?
Zusatzfragen
Grüße
Biber
[Edit] Sorry, die 3 Global/public-Zeilen oberhalb der Function waren noch da, als ich meine Fragen geschrieben habe.[/Edit]
danke für die Infos.
Als ch deinen Eroffnungspost überflogen hatte (und deine jetzt genauere Fehlerbeschreibung noch nicht kannte) hatte ich drei vage Verdachtsmomente.
- es könnte sein, dass die (wo auch immer) gesetzte Variable "ws" auf das falsche Worksheet zeigt [ich jedenfalls hätte das Ziel-workSheet lieber immer explizit als "Ein-WorkSheet-namens-Babe" oder ähnlich in der sortbyNewQty() ermittelt
- oder aber die Range-Angabe ist zum Sortieren ungeeignet, weil sie sich nur auf eine Zelle bezieht (das "I5" ist doch sicher nur die zelle I5 und kein named range). Eine Zelle nach zwei Spalten sortieren könnte Excel verweigern, dachte ich mir.
- oder aber, die dritte Vermutung, die überflüssige Zeile "String mgSortval=ConvertToString(mgSort.Value2)" geht in den Dutt, weil in Value2 im zweiten Durchgang ein double Wert steht und du damit natürlich die Convert.ToString() in die Knie zwingst.
Könntest du bitte mal die Zeile "String mgSortval=ConvertToString(...." auskommentieren, um einen der drei Fälle auzuschliessen?
Zusatzfragen
- der Fehler tritt immer erst beim 2ten Aufruf auf?
- die Variable "Ws" wird ein einziges Mal global gesetzt? Oder wird die mehrfach auf jeweils ActiveSheet() umgebogen?
Grüße
Biber
[Edit] Sorry, die 3 Global/public-Zeilen oberhalb der Function waren noch da, als ich meine Fragen geschrieben habe.[/Edit]
Moin KaiserQQ7,
ich bin da ja auch nur interessierter Laie, aber nach meinem Gefühl sind da ein paar zuviel variablen "static".
Wenn ich Excel wäre (was die Götter verhüten mögen), dann würde ich die Variable "ws" genau auf das Workbook setzen, was beim allerersten AddIn-start zufällig das "app.ActiveWorkbook" ist.
Das mag ja gewährleistet sein, dass dieses auch immer das "richtige" ist. Ich würde es dennoch mit Namen ansprechen ( app.WorkBook["Babe] oder ähnlich.
Und kannst du nochmal das Verhalten prüfen, wenn explizit am Ende der SortbyQty() das Range-Object destroyed wird (rngSort = Nothing) ?
Vielleicht ist da ja die ins Nirvana zeigende Referenz.
Grüße
Biber
ich bin da ja auch nur interessierter Laie, aber nach meinem Gefühl sind da ein paar zuviel variablen "static".
Wenn ich Excel wäre (was die Götter verhüten mögen), dann würde ich die Variable "ws" genau auf das Workbook setzen, was beim allerersten AddIn-start zufällig das "app.ActiveWorkbook" ist.
Das mag ja gewährleistet sein, dass dieses auch immer das "richtige" ist. Ich würde es dennoch mit Namen ansprechen ( app.WorkBook["Babe] oder ähnlich.
Und kannst du nochmal das Verhalten prüfen, wenn explizit am Ende der SortbyQty() das Range-Object destroyed wird (rngSort = Nothing) ?
Vielleicht ist da ja die ins Nirvana zeigende Referenz.
Grüße
Biber