2017-10-24 8 views
0

このコードはソースファイルを開きますが、ソースファイルはコピーしません。私は自分のソースファイルからデータをコピーし、それをコピー先のファイルに貼りたいと思う。1つのExcelシートから別のExcelシートにデータをコピーするにはどうすればよいですか?

Sub copy() 

Dim x As Workbook 
Dim y As Workbook 

Set x = Workbooks.Open("Source File") 
Set y = Workbooks.Open("Destination File") 

y.Sheets("Sheet1").Range("A1").Value = x.Sheets("Sheet1").Range("A1") 

x.Close 

End Sub 
+0

このコードはソースファイルを開きますが、ソースファイルはコピーしません。私は自分のソースファイルからデータをコピーし、それをコピー先のファイルに貼りたいと思う。 –

+3

コメントを書く代わりに質問を編集してください。 – Luuklag

+0

両方のファイルが開いています。 –

答えて

0

あなたは.Valueアリあなたの行の末尾に欠けている:

y.Sheets("Sheet1").Range("A1").Value = x.Sheets("Sheet1").Range("A1").Value 

か試してみてください。

y.Sheets(1).Cells(1, 1).Value = x.Sheets(1).Cells(1, 1).Value 

私はあなたがSを持っていないと思います両方のワークブック内のheet1、異なる表記を試してみましょう。

をして、あなたのコードをデバッグしてみてください。

msgbox y.Sheets("Sheet1").Range("A1").Value 
msgbox x.Sheets("Sheet1").Range("A1").Value 

私はあなたのファイルが正常に開かれていないと思います。

+0

静止画データをあるファイルから別のファイルにコピーすることはできません。ソースファイルを開くだけです。 –

+0

答えを更新しました。新しい行を試してみてください。 –

+0

まだデータをコピーできません –

0

次の操作を実行し、デバッグしよう:

Sub Copy() 

    Dim x As Workbook 
    Dim y As Workbook 

    Set x = Workbooks.Open("Source File") 
    Set y = Workbooks.Open("Destination File") 

    Debug.Print x.Name 
    Debug.Print y.Name 

    Debug.Print x.Sheets("Sheet1").Range("A1").value 
    Debug.Print y.Sheets("Sheet1").Range("A1") 

    Debug.Print x.Sheets("Sheet1").Range("A1").Address 
    Debug.Print y.Sheets("Sheet1").Range("A1").Address 

End Sub 
+0

上記の行を置いても何も起こりません。 –

+0

@RavindraSinghRawat - どちらですか? – Vityata

+0

.Valueが不足しています。また、この行を入力すると、コピー先ファイルのデータがソースファイルにコピーされます。 –

関連する問題