2016-05-24 4 views
0

コピーデータが付いたファイルVBAマクロ私はそのような私のworbookシートに開いたワークブックのシートからブックを開くと、コピーしたい

Private Sub Workbook_Open() 
    Dim openedFile As String 
    Dim sourcebook As Workbook 
    openedFile = Application.GetOpenFilename(fileFilter:="Excel Macro-Enabled Workbook (*.xlsm), *.xlsm") 'Source book opening 

    Set sourcebook = Workbooks.Open(openedFile) 

    Application.CutCopyMode = True 
    sourcebook.Worksheets("source_sheet").Range("A1:L100").Copy 
    ThisWorkbook.Worksheets("dest_sgheet").Range("A1").PasteSpecial Paste:=xlPasteValues 
    Application.CutCopyMode = False 
    Call sourcebook.Close(False) 
End Sub 

私はこのコードをruningて後にこのエラーメッセージが表示されました:

実行時エラー「1004" :RangeクラスのPasteSpecialメソッドが

を失敗したことは、この行でoccourです:

ThisWorkbook.Worksheets("dest_sheet").Range("A1").PasteSpecial Paste:=xlPasteValues

答えて

0

(「このワークブック」)最初のワークブックを活性化し、その後、あなたがデータをペーストしたいシートをアクティブにしてみてください。エラーは、範囲が可視でも存在しないために発生する傾向があります。

0

あなたのコードはうまくいくはずです。私は修正後OPコードに従ってプログラムを再実行した25-05-2016に

ThisWorkbook.Worksheets("dest_sheet").Range("A1").PasteSpecial Paste:=xlPasteValues 

EDIT OPのコメントに基づいて :この1と

ThisWorkbook.Worksheets("dest_sgheet").Range("A1").PasteSpecial Paste:=xlPasteValues 

:この行を変更 シートのスペルミスでのマイナーなタイプミス。プログラムは問題なく正常に実行されます。ランタイムエラー1004が表示されません。スクリーンショットは、データが正しくコピーされていることを示しています。

screenshot showing input and output

+0

これすぎ行は、シート名のを除いて、ほとんど同じですが、それは無関係です。 – Twi

+0

@Twi私はあなたのコードをサンプルデータでテストし、それが完全に機能していることを発見しました。ご不明な点がございましたら、お知らせください。 – skkakkar

+0

@Twi私たちは、彼らを助けるために、同僚のコードをチェックするよう努力しました。基本的な問題は、あなたが作成したプログラムコードが間違っているかどうかです。実行時エラー1004が発生します。サンプルデータをコンパイルし、コードを分析して作業を確認します。通常、そのような小さな事柄はコメントを通じて知らされます。この場合、あなたの問題を完全にはっきりと解決していないようで、あなたの問題を分析するのに貴重な時間を費やしたことを考えれば、それは不注意に答えになりました。あなたの気持ちを傷つけてしまったら、お詫び申し上げます。 – skkakkar

関連する問題