Excel で定期的に 25,000 ~ 35,000 行を Access データベースに移動するマクロを作成しようとしています。私が理解しているように、マクロを使用している人々が異なるバージョンの Excel と Access を使用している環境で作業している場合 (私はたまたま 2007 を使用しています)、遅延バインディングを使用することをお勧めします。異なる参照の問題を回避できるからです。およびバージョンなど。- 機能すると、機能します (遅くなりますが)。
次のコードを Excel VBA で動作させようとしています。
Sub TransferToDB()
Dim acApp As Object
ssheet = "C:\Documents and Settings\yk\Desktop\Open Invoice Summary 322 - 2012-07-17.xlsx"
ssrange = "AllData!A1:M28323"
Set acApp = CreateObject("Access.Application")
acApp.OpenCurrentDatabase ("C:\Documents and Settings\yk\Desktop\Open Invoice Summary.accdb")
acApp.Visible = True
acApp.UserControl = True
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, OpenInvoices, ssheet, True, ssrange
acApp.CloseCurrentDatabase
acApp.Quit
Set acApp = Nothing
End Sub
マクロが DoCmd.TransferSpreadsheet 行に到達すると、エラーで停止します。
実行時エラー 424:
必要なオブジェクト
Excel のこのルーチンは、大きなブックの多くのワークシートから情報を収集する別のルーチンから呼び出され、そのブックの「AllData」というシートにすべてをダンプします。この DoCmd.TransferSpreadsheet メソッドへの参照をオンラインで見続けていますが、機能するカット アンド ペースト コードを見つけることができないようです...
- その時点でルーチンがクラッシュし続けるのはなぜですか?
- ADO や DAO を使用せずに Excel から Access に日付を転送することはできますか?
- レイト バインディングで問題が発生しないというのは本当ですか、それとも ADO を使用した方がよいのでしょうか?
ありがとう - あなたの助けに感謝します!