1

您好,我正在尝试将数据从 Excel 导入到 Visual Basic 变量,但我遇到了一个奇怪的错误。我确实添加了对 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

由于以下错误,检索具有 CLSID {00020819-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:80040154 类未注册(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。

4

2 回答 2

4

您不能以这种方式创建工作簿或工作表。您必须使用 Workbooks.Open 或 Workbooks.Add 方法(您在 ExtraerCostos 的第 10 行执行此操作)

采用

将工作簿变暗为 Excel.Workbook

并且已经好了

于 2012-10-31T20:44:47.420 回答
1

...您将其声明为新工作簿,但未将其设置为值...试试这个:

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

希望这可以帮助

于 2012-10-31T21:07:35.310 回答