Ошибка `` Класс не зарегистрирован '' при работе с excel и visual studio 2010

Здравствуйте, я пытаюсь импортировать данные из Excel в основные визуальные переменные, но получаю странную ошибку. Я добавил ссылку на библиотеку microsoft excel com.

Imports Microsoft.Office.Interop.Excel

Module Module1

Sub Main()
    ExtraerCostos()
End Sub

Public Sub ExtraerCostos()

    Dim numero As String
    Dim aux As String
    Dim costos(20) As Double
    Dim cant As Integer  

    Dim excelApp As New Microsoft.Office.Interop.Excel.Application
    Dim workbook As New Microsoft.Office.Interop.Excel.Workbook ' The error points to this line 
    Dim sheet As New Microsoft.Office.Interop.Excel.Worksheet

    excelApp = CreateObject("Excel.Application")
    excelApp.Visible = True
    workbook = excelApp.Workbooks.Open("C:\workbook.xls")
    sheet = workbook.Worksheets("Factura Detallada")

     'Irrelevant code
    numero = "111111111"
    cant = 12

    While numero.Length = 9
        cant = cant + 1
    End While

    For i = 12 To cant

        numero = sheet.Cells(i, 1).text
        For j = 3 To 22
            aux = sheet.Cells(i, j).text
            If aux = "-" Then
                costos(j - 2) = 0
            Else : costos(j - 2) = Convert.ToDouble(aux)

            End If
            Console.WriteLine(costos(j - 2))
        Next


    Next

End Sub
End Module

Получение фабрики классов COM для компонента с CLSID {00020819-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: 80040154 Класс не зарегистрирован (исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).


person Diego    schedule 31.10.2012    source источник


Ответы (2)


вы не можете создать книгу или рабочий лист таким образом. вам нужно использовать метод Workbooks.Open или Workbooks.Add (вы делаете это в строке 10 ExtraerCostos)

использовать

Уменьшить размер книги как Excel.

и уже было хорошо

person Sebastian    schedule 31.10.2012

... Вы объявили его как Новая книга, но не установили для него значение ... Попробуйте следующее:

Dim workbook As Microsoft.Office.Interop.Excel.Workbook = Nothing

Надеюсь это поможет

person John Bustos    schedule 31.10.2012