プロが教える店舗&オフィスのセキュリティ対策術

エクセル2000でブック間のデータのコピーをやっていての質問です。
あるディレクトリ内に「統合するファイル.xls」と「統合されるファイル.xls」があります。両方のファイルにはC列からG列、2行目以下に数字のデータが入っています。(C2~G2、C3~G3・・・・というように続きます)
「統合されるファイル」のC列からG列のデータをコピーして「統合するファイル」のデータの下に貼り付けるプログラムを作っています。プログラムは以下です。

Dim sBase As String
Dim sMyPath As String
Dim lLine As Long
Dim lStartRow As Long
Application.ScreenUpdating = False
'統合するファイル名・ディレクトリ名取得
sBase = ActiveWorkbook.Name
sMyPath = ActiveWorkbook.Path & "\"

Workbooks.Open Filename:=sMyPath & "統合されるファイル.xls"
lLine = Workbooks("統合されるファイル.xls").Worksheets("Sheet1").Cells(ActiveSheet.Rows.Count, 3).End(xlUp).Row
'統合するファイルの最終行を抽出
lStartRow = 0
lStartRow = Workbooks(sBase).Worksheets("Sheet1").Cells(ActiveSheet.Rows.Count, 3).End(xlUp).Row
'統合されるファイルからコピーして統合するファイルの最終行より下に貼り付け
Workbooks("統合されるファイル.xls").Worksheets("Sheet1").Range(Cells(2, 3), Cells(lLine, 7)).Copy Destination:=Workbooks(sBase).Worksheets("Sheet1").Range(Cells(lStartRow + 1, 3))

Workbooks("統合されるファイル.xls").Close SaveChanges:=False
Application.ScreenUpdating = True

現在、このプログラムを走らせると、コピーして貼り付けるところで「アプリケーション定義またはオブジェクト定義のエラーです」という警告が出てコピーされない状況です。
何が悪いのでしょうか?

A 回答 (1件)

Workbooks("統合されるファイル.xls").Worksheets("Sheet1").Range(Cells(2, 3), Cells(lLine, 7)).Copy Destination:=Workbooks(sBase).Worksheets("Sheet1").Range(Cells(lStartRow + 1, 3))



コピー部分とペースト部分を単純に分けたほうが簡単だと思いますが。

' コピー部を選択し、コピー
Windows("統合されるファイル.xls").Activate
Range(Cells(2, 3), Cells(lLine, 7)).Select
Selection.Copy

' ペースト部を選択し、ペースト
Windows(sBase).Activate
Cells(lStartRow + 1, 3).Select
ActiveSheet.Paste
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!