Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
System.Office.Interopt.Excel outside the bounds of the array
Maendler53
myCSharp.de - Member

Avatar #T7wYDrQC6AI0LtV1jhbr.JPG


Dabei seit:
Beiträge: 5

Themenstarter:

System.Office.Interopt.Excel outside the bounds of the array

beantworten | zitieren | melden

Hallo Leute,

Ich habe folgendes Problem:

Wenn ich folgenden Code aufrufe:

 internal static void CellsMerge(string address)
        {
            string[] splited = address.Split(Convert.ToChar(":"));
            int firstCol;
            int firstRow = Cvr.GetIndexes(splited[0], out firstCol);
            int lastCol;
            int lastRow = Cvr.GetIndexes(splited[1], out lastCol);

            Exc.Range rng = Ws.CurrentSheet.Range[Ws.CurrentSheet.Cells[firstRow, firstCol], Ws.CurrentSheet.Cells[lastRow, lastCol]] as Exc.Range; // Beim erstellen des Rangeobjekt, entsteht der Fehler.  Die Felder firstCol, firstRow, lastCol und lastRow sind  entsprechend Excel 1 basiert und richtig initialisiert.
            rng.Merge(Type.Missing);

        }
Fehler

Index was outside the bounds of the array

Auch nach intensivem suchen, konnte ich keine Lösung finden. Die in den meisten Beispielen benutzte get_Range-Methode ist Obsolet und neuere Beispiele selten!

LG Alex
private Nachricht | Beiträge des Benutzers
Alf Ator
myCSharp.de - Member



Dabei seit:
Beiträge: 679

beantworten | zitieren | melden

Hallo Maendler53

 internal static void CellsMerge(string address)
        {
            string[] splited = address.Split(Convert.ToChar(":"));
            int firstCol;
            int firstRow = Cvr.GetIndexes(splited[0], out firstCol);
            int lastCol;
            int lastRow = Cvr.GetIndexes(splited[1], out lastCol);

            var von = Ws.CurrentSheet.Cells[firstRow, firstCol];
            var bis = Ws.CurrentSheet.Cells[lastRow, lastCol];

            Exc.Range rng = Ws.CurrentSheet.Range[von, bis] as Exc.Range; // Beim erstellen des Rangeobjekt, entsteht der Fehler.  Die Felder firstCol, firstRow, lastCol und lastRow sind  entsprechend Excel 1 basiert und richtig initialisiert.
            rng.Merge(Type.Missing);
        }

Mach das doch mal so, geh mit dem Debugger rein und schau dir an, ob die Exception bei 'von', oder bei 'bis' geworfen wird.

Gruß
Alf
private Nachricht | Beiträge des Benutzers
Maendler53
myCSharp.de - Member

Avatar #T7wYDrQC6AI0LtV1jhbr.JPG


Dabei seit:
Beiträge: 5

Themenstarter:

beantworten | zitieren | melden

Danke Alf

Mit den variabeln von, bis wurder der fehler auch geworfen:

Nach dem Boxing:

var von = Ws.CurrentSheet.Cells[firstRow, firstCol]as Exc.Range;
var bis = Ws.CurrentSheet.Cells[lastRow, lastCol] as Exc.Range;

läufte es nun tadellos!

Gruss Alex
private Nachricht | Beiträge des Benutzers