Laden...

Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt

Erstellt von cr4x vor 14 Jahren Letzter Beitrag vor 14 Jahren 3.548 Views
C
cr4x Themenstarter:in
7 Beiträge seit 2009
vor 14 Jahren
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt

Hallo zusammen,
folgendes Problem:
Ich habe ein C# Projekt (Excel2007Arbeitsmappe) gestartet...
Das habe ich auf ein bestehendes Excel Sheet verwiesen.
Anfangs hat man nun ja standardmäßig 3 Klassen. Also Tabelle1, Tabelle2, Tabelle3 z.b.
Ich möchte jetzt mit den Tabellen arbeiten. Also muss ich von Tabelle1 ein Objekt erstellen. Habe ich auch gemacht, doch wenn ich dann mit dem Objekt arbeite kommt immer dieser Fehler:
"Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt"
Muss ich das Objekt irgendwie anders zuweisen vorher?


private void button1_Click(object sender, RibbonControlEventArgs e)
        {
            Tabelle1 table1 = new Tabelle1();

            table1.Activate();          
        }

Anbei Screen der Fehlermeldung...

5.941 Beiträge seit 2005
vor 14 Jahren

Hallo cr4x

Lies mal folgendes:

Hast du den Debugger benutzt?
Wie sieht die Klasse "Tabelle1" bzw. dessen Activate Methode aus?

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

C
cr4x Themenstarter:in
7 Beiträge seit 2009
vor 14 Jahren

Hi Peter,
Es liegt nicht an der Activate Methode...
Jedes mal wenn ich mit dem Objekt arbeite kommt der gleiche Fehler.
Von der Objekt Erstellung her ist auch alles richtig eigentlich.
Tabelle1 ist eine Klasse die erstellt wird wenn man im Excel Sheet eine neue Tabelle erstellt...
also hat man eine Excel Datei ohne Tabellen hat man also keien Tabellen Klasse...
erstellt man dann eine Tabelle dann wird auch standardmäßig Tabelle1 erstellt...
Das sieht man auch so... Öffne mal Excel
dann steht unten Tabelle1,Tabelle2,Tabelle3
un diese Tabellen kann ich dann auch als Klasse ansprechen...

mfg

239 Beiträge seit 2008
vor 14 Jahren

Hallo cr4x,

das ist jetzt nur eine Vermutung, aber ich denke du musst dein neu erstelltes Objekt auch der aktuellen Exceldatei zuweisen. Eventuell besitzt diese auch eine (statische) Methode zum Hinzufügen von neuen Excel-Sheets.

Also etwa so:


// Pseudocode
MeinArbeitsblatt.Sheets.Add(new Tabelle 1());

Ich könnte mir gut vorstellen, dass allein der Konstruktoraufruf das Excel-Sheet nicht der aktuellen Datei hinzufügt...

Gruß Michbeck1983

Neulich im Computerkurs:
Mein Computer kennt Else nicht! 😁


[URL]XING-Profil[/URL]

1.696 Beiträge seit 2006
vor 14 Jahren

Hallo,

schau doch mal in VBA rein. Ein neues Arbeitsblatt wird nicht via CreateObject erstellt, sondern über die .Add Methode des Worksheet-Objekt. Deshalb kannst du so kein neues Arbeitsblatt anlegen.

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::