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 に答える