- ベストアンサー
VBA ACCESSからexcel操作
- アクセスのテーブルから新規excel(BOOK1)にデータを抽出し、そのデータを既存のデータが入っているexcel(BOOK2)にコピーする方法について困っています。
- BOOK1のデータをBOOK2の新規シートにコピーする操作はできますが、RANGEクラスの使用時に「アプリケーションの定義エラー」が発生します。
- 基本的な操作と思われますが、RANGEクラスを使用して既存のシートにデータをコピーする方法がわかりません。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No.3です。 YlWb.worksheets("追加差分").Range("1:" & Last_Rowb).Copy XlWb.worksheets(”基本データ").Range(Last_Rowa + 1 & ":" & Last_Rowb) はもしかして YlWb.worksheets("追加差分").Range("1:" & Last_Rowb).Copy XlWb.worksheets(”基本データ").Range(Last_Rowa + 1 & ":" & Last_Rowa + Last_Rowb) になるか???
その他の回答 (3)
- n-jun
- ベストアンサー率33% (959/2873)
No.1です。 >YlWb.worksheets("追加差分").Range("1:Last_Rowb").Copy >XlWb.worksheets(”基本データ").Range("Last_Rowa+1:Last_Rowb") エラーはこの辺なのかな? だとすれば変数の使い方が変ですよね。 YlWb.worksheets("追加差分").Range("1:" & Last_Rowb).Copy XlWb.worksheets(”基本データ").Range(Last_Rowa + 1 & ":" & Last_Rowb) ではないかな?
- pochi000
- ベストアンサー率0% (0/1)
操作が分からなくなってしまったため別id ですが、質問者です。 以下質問のときには書けなかったソースになります。 ACCESSに入力するソース If diR("ファイルパス&BOOK2”) = "" then Docmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9,”追加差分”,ファイルパス&Book2") Else Kill("ファイルパス&Book2”) Docmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9,”追加差分”,ファイルパス&Book2) Set Xlappa = CreateObject("Excel.Aplication") Set XlWb = Xlappa.Workbooks.Openc("ファイルパス&Book1”) Set YlWb = Xlappa.Workbooks.Open(”ファイルパス&Book2”) XlWb.worksheets(1).Activate YlWb.worksheets(1).Activate Last_Rowa = XlWb.ActiveSheet.Cells(Rows.Count,1).End(xlup).row Last_Rowb = YlWb.ActiveSheet.Cells(Rows.Count,1).End(xlup).row YlWb.worksheets("追加差分").Range("1:Last_Rowb").Copy XlWb.worksheets(”基本データ"). Range("Last_Rowa+1:Last_Rowb")
- n-jun
- ベストアンサー率33% (959/2873)
せめてそのエラーの出ている部分とかを 提示された方が、回答も楽になると思うのですが・・・
補足
すみません。会社から投稿する事がちょっとしにくかったため、文章での説明になってしまいました。 月曜日再度投稿したいと思います。