2016-12-05 9 views
0

VBAの新機能で、コードを動作させるのに苦労します。私はここに多くの同様の質問があることを知っていますが、私は正しいペースト式を見つけることができません。私は、ワークシート "ワークブック1"からデータをコピーして、 "ワークブック2"ワークシートの次の利用可能な行に転記する必要があります。ご協力ありがとうございました。最初の使用可能な行と転置であるワークシートから別のワークシートにデータをコピーする

は、これまでのところ私が持っている:

Sub MoveData() 

'Define variables 
Dim Workbook1 As Workbook 
Dim Workbook2 As Workbook 
Dim wb As Workbook 
Dim ws As Worksheet 

Dim LastRow As Long 

'Set and Open 
Set wb = ThisWorkbook 
Set ws = wb.Worksheets("Sheet1") 

LastRow = ws.Range("A" & Rows.Count).End(xlUp).Offset(1).Row 

'Copy and paste 
wb.ws.Range("A1:A5").Copy 
Set Workbook2 = Workbooks.Open("H:\Macro\Workbook2") 
Workbook2.Sheets("Sheet1").Range("A1:M & LastRow").PasteSpecial Transpose:=True 

End Sub 
+0

以下の私のコードを試してみてください、私はデータを列にそれまでは最後の行を範囲をコピーし、あなたのコードは完璧に動作し –

+0

のためにそれが動作するかどうか私に知らせて、どうもありがとう!気にしない場合はもう1つ質問があります:マクロがA列で実行されたときのタイムスタンプを追加し、B列からデータを貼り付けたい(単に貼り付け先をセルBに変更したのでこの部分は問題ありません)。あなたはこれを行う方法を知っていますか?再度、感謝します!! – Caras

+0

「タイムスタンプ」はどういう意味ですか?列Aをコピーして列Bに貼り付けて転置しますか? –

答えて

0

以下のコードは、ThisWorkbookに「シート1」に最後の行を探し列Aでコピー範囲全体を、次に "で使用可能な最初の行にそれを貼り付け「Workbook2.xlsm」の「Sheet1」をクリックします。 PasteメソッドはPasteSpecial、値のみ、およびTransposeです。

Option Explicit 

Sub MoveData() 

'Define variables 
Dim Workbook1 As Workbook 
Dim Workbook2 As Workbook 
Dim wb As Workbook 
Dim ws As Worksheet 
Dim LastRow As Long, DestLastRow As Long 

' Set wb 
Set wb = ThisWorkbook 
Set ws = wb.Worksheets("Sheet1") 

' set and open Workbook2, need to add the file extenstion (.xlsm) 
Set Workbook2 = Workbooks.Open("H:\Macro\Workbook2.xlsm") 

With ws 
    ' find last row with data in Column A to copy 
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 
    .Range("A1:A" & LastRow).Copy 
End With 

With Workbook2.Sheets("Sheet1") 
    ' find last row with data in destination workbook "Workbook2.xlsm" 
    DestLastRow = .Cells(.Rows.Count, "A").End(xlUp).Offset(1).Row 
    ' paste special only values, and transpose 
    .Range("A" & DestLastRow).PasteSpecial xlValues, Transpose:=True 
End With 

End Sub 
関連する問題