- 締切済み
他ブックから指定範囲をコピー
自分で調べたのですがよく分からないので質問します。 下のように書いたのですが 実行時エラー '424'; オブジェクトがッ必要です。というエラーが出ます。 Private Sub CommandButton3_Click() Dim F_Name As String, myRange As Range F_Name = Application.GetOpenFilename("Microsoft Excelブック,*.xls") If F_Name <> "False" Then Workbooks.Open F_Name With ActiveWorkbook Set myRange = .Worksheets(1).Range("B6:U509") .Saved = True .Close End With With ThisWorkbook myRange.Copy.Worksheets(2).Range ("B6:U509") End With End If Set myRange = Nothing End Sub やりたいことは読み込んだExcelのシート1(または金額というシート)のB6:U509範囲をコピーし 実行したブックのシート2(または金額というシート)のB6:U509範囲に貼り付けたいのです。 よろしくお願いします
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- rivoisu
- ベストアンサー率36% (97/264)
>If F_Name <> "False" Then If F_Name <> false Then cancelされたときに返されるのはFalseという文字ではなくfalseという論理値 >myRange.Copy.Worksheets(2).Range ("B6:U509") myRange.Copy Worksheets(2).Range ("B6:U509") copyの次はピリオドではなくSpace (一個の空白) >実行時エラー '424';オブジェクトがッ必要です。というエラーが出ます。 こういう質問はどこでエラーになるかを記述してください。
- xls88
- ベストアンサー率56% (669/1189)
Copy実行前に元Bookを閉じると失敗しませんか? Copy実行後に閉じればどうでしょうか。 例えば F_Name = Application.GetOpenFilename("Microsoft Excelブック,*.xls") If F_Name <> "False" Then Workbooks.Open F_Name F_Name = Split(F_Name, "\")(UBound(Split(F_Name, "\"))) '★元Book名抽出 With Workbooks(F_Name) '★元Book名で指定 Set myRange = .Worksheets("金額").Range("B6:U509") End With With ThisWorkbook myRange.Copy .Worksheets("金額").Range("B6") End With End If Workbooks(F_Name).Close SaveChanges:=True '★元Bookを閉じる Set myRange = Nothing