Excel beim Ansprechen der Zellen kommt Fehlermeldung 0x800A03EC

  • VB.NET
  • .NET (FX) 4.0

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Schoofi.

    Excel beim Ansprechen der Zellen kommt Fehlermeldung 0x800A03EC

    Ich möchte eine Exceldatei füllen.
    Beim Ansprechen der Zellen, direkt über Cells(1,1) erscheint die Fehlermeldung 0x800A03EC
    ich möchte die Zellen aber am liebsten in der Form xls.cells(i,j) ansprechen, da ich hier die Laufvariablen am einfachsten einsetzen kann.
    Warum funktioniert die Schreibweise xls.Range(xls.Cells(i, 3)).Value = "'NutzerAbrechnung" nicht ?
    Das ich die Zellen erst in einen Range umwandeln muß habe ich ja auch schon mitbekommen, aber den Hintergrund nicht ganz verstanden.
    Unter VBA waren sie direkt ansprechbar.

    Beim Eingrenzen des Fehlers habe ich folgendes herausgefunden

    VB.NET-Quellcode

    1. Dim appExcel As New Excel.Application
    2. Dim xlw As Excel.Workbook = appExcel.Workbooks.Open("d:\Fehler.xlsx")
    3. Dim xls As Excel.Worksheet = DirectCast(xlw.Worksheets(1), Excel.Worksheet)
    4. Dim i As Integer = 1
    5. appExcel.Visible = True
    6. Dim xlc As Excel.Range
    7. xlc = DirectCast(xls.Cells(i, 1), Excel.Range)
    8. xlc.Value = "IPP-Nr" 'funktioniert
    9. xls.Range("B1").Value = "Rechner" 'funktioniert
    10. xls.Range(xls.Cells(i, 3)).Value = "'NutzerAbrechnung" 'funktioniert nicht
    11. xls.Range(xls.Cells(i, xlSpalten.NutzerIst)).Value = "NutzerIst" 'funktioniert nicht
    Ich habe mir erstmal so beholfen.

    VB.NET-Quellcode

    1. Public Property xlc(parintZeile As Integer, parintSpalte As Integer) As Excel.Range
    2. Get
    3. _xlc = DirectCast(xls.Cells(parintZeile, parintSpalte), Excel.Range)
    4. Return _xlc
    5. End Get
    6. Set(ByVal value As Excel.Range)
    7. _xlc = value
    8. End Set
    9. End Property


    Damit kann ich die Ecelzellen dann über xlc(Zeile,Spalte).value=Wert ansprechen
    Ich würde es aber trotzdem gern verstehen.