2016-05-27 9 views
0

毎週マスターファイルを更新しています。その結果、ソースファイルのデータをコピーしてマスターシートに貼り付けようとしています。今、前週のデータの後に列と行にデータを貼り付ける必要があります。たとえば、最後の週のデータが終了すると(「H70:M70」)、新しい貼り付けデータが必要になります(「H71:M71」)。また、新しい貼り付けデータには多くの行が含まれているため、今週データの最後の行/列(「H230:M230」)の後に次週のデータを貼り付ける必要があります。助けてください。データの最後の行/列の後/にデータをコピー/ペーストします。古いワークブックから新しいワークブックへ

Option Explicit 
Sub Copydata() 
Dim myWB As Workbook 
Dim thisWB As Workbook 
Dim thisWS As Worksheet 

Application.ScreenUpdating = False  

Set myWB = Workbooks.Open("C:\Users\jjordan\Desktop\test.xlsx") 

myWB.Sheets("Sheet1").Range("A8:F17").Copy 

Set thisWB = ThisWorkbook 
Set thisWS = thisWB.Sheets("Test data") 

thisWB.Activate 
thisWS.Range("H71:M71").PasteSpecial _ 
    Paste:=xlPasteValues, Operation:=xlNone, _ 
    SkipBlanks:=False, Transpose:=False 

With Application 
    .CutCopyMode = False 
    .ScreenUpdating = True 
End With 

myWB.Close 

End Subの

+0

'thisWS.Range(" A1 ")'だから、 'A1'の代わりに最後の行を見つけて代わりに使用してください。編集:最後の行を見つける方法を見つけるために5分かかるでしょう^ _^ – findwindow

+0

@findwindow。新しい貼り付け領域には多くのデータがあります。つまり、新しいデータは、特定の範囲の領域に「具体的に」貼り付ける必要があります。たとえば、(「H71:M71」)。 –

+0

これは本当に簡単に行うこともできます。それは把握するのに少し時間がかかります。ヒント:google 'サイズ変更 '。編集:あなたはコピー/ペーストしているので、最後の行に貼り付けるだけなので、それは無関係です。私は代わりに範囲を設定することをお勧めしますが、次に 'サイズを変更する '必要があります。 – findwindow

答えて

1

ジェームズ、あなたはVBAでEnd()に精通していますか?

lastRow = ActiveSheet.Cells(Rows.Count,1).End(xlUp).Row 

これは、データを含むセルを見つけるまで上がると、対応する行を返し、その後、ワークシートの列1の最後の可能なセルに移動します。

End()のその他の可能な引数は、xlDown、xlToLeft、およびxlToRightです。最後の/最初の列と行を見つけるために使用できます。

+0

ありがとうございます。私はEnd()についていくつかの調査を行います。私はそれを見たことがあるので、確かに私の記憶を揺るがしました。したがって、その場所を開始する。決して「findwindow」を気にしないで、私は彼の応答で大丈夫です。何人かは助ける時間がありますが、他の人はしません。私と一緒に涼しい。私はまったく同じことを学んでいます。 –

+0

私はそれを見るのが良い方法だと思います。さらに援助が必要な場合は、コメントを残してください。これで問題が解決する場合は、回答としてマークしてください! –

+1

ありがとうSean。はい、私はここからそれを取ることができます。ここの鍵は実際にどこから始めるべきかを知っていたと思う。あまりにも多くの情報があるので、必要な実際の情報を解読することが重要です。明らかに私は正しい方向に向いていました。乾杯! –

関連する問題