1

Access データベースに Excel データをインポートする VBA コードに問題があります。コードを実行すると、「ランタイム エラー 438 オブジェクトはこのプロパティまたはメソッドをサポートしていません」というランタイム エラーが発生します。他のフォーラムでの私の読書から; 問題がライブラリの問題である可能性があることを理解しています(別のライブラリを使用しながらライブラリを参照する)私はVBAに少し慣れていません。関連しているかどうかはわかりませんが、このエラーが発生する前に、「エラー429 ActiveXコンポーネントはオブジェクトを作成できません」というエラーが発生し、解決しました。

ここに、責任があると思われるコードの部分があります。

      On Error GoTo erreur

'déclaration des variables
Dim app As Object
Dim wkb As Object
Dim wks As Object

'initialisation des variables
Set app = CreateObject("Excel.Application")
Set wkb = app.Workbooks.Add
Set wks = wkb.Worksheets(1)
wkb = app.Workbooks.Open("C:\Users\souleimane\Desktop\Internship\donnee_excel\table_de_corresp.xls")
wks = wkb.Worksheets("sheet1")

デバッグ メニューでコンパイル オプションを実行しようとしましたが、何もポップアップしませんでした。これが責任のあるコードの部分ではないと思われる場合は、残りを投稿できます。

4

1 に答える 1

3

オブジェクト型を変数に割り当てる場合は、使用する必要があるSetため、最後の 2 行は次のようになります。

Set wkb = app.Workbooks.Open("C:\Users\souleimane\Desktop\Internship\donnee_excel\table_de_corresp.xls")
Set wks = wkb.Worksheets("sheet1")

また、次の行を省略できる場合もあります。

Set wkb = app.Workbooks.Add
Set wks = wkb.Worksheets(1)

追加したワークブックを後でコードで使用するかどうかによって異なります。Set wks = wkb.Worksheets(1)ただし、その行には副作用がなく、wks後で2行を再割り当てするため、間違いなく省略できます

于 2013-07-28T22:32:41.950 に答える