Laden...

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

Erstellt von Maendler53 vor einem Jahr Letzter Beitrag vor einem Jahr 1.094 Views
Maendler53 Themenstarter:in
5 Beiträge seit 2021
vor einem Jahr
System.Office.Interopt.Excel outside the bounds of the array

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);

        }

Fehlermeldung:

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

A
764 Beiträge seit 2007
vor einem Jahr

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

Maendler53 Themenstarter:in
5 Beiträge seit 2021
vor einem Jahr

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