2017-02-15 14 views
1

私は2つの学生の登録を異なるワークブック(保有者と子会社)の間で統合する必要があります。 「Graphic Generate」ボタンをクリックすると、データがシート「Total」に集約され、コース数(Excel、Word、Accessなど)がカウントされ、グラフが「Graphic」シートに生成されます。最初のテストはOKですが、もう一度クリックすると、子会社のワークブックの同じデータでリストが増加しています。変更する必要があるコードには何かがありますが、私は何がわかりません。 私を助けることができますか? 私のコードは次のとおりです。2つの異なるブック間でデータを統合するにはどうすればよいですか?

Sub GerarGrafico() 
Dim k As Long 

'copying data of the “Course Booking” Sheet 

Sheets("Course Booking").Select 
Range("A1").Select 
linini = 2 
'Select the last row 
Selection.End(xlDown).Select 
linfin = Selection.Row 
'Select the last column 
Selection.End(xlToRight).Select 
colfin = Selection.Column 
Range(Cells(linini, 1), Cells(linfin, colfin)).Select 
Selection.Copy 

「シートにデータをコピーする 『トータル』

Sheets("Total").Select 
Cells(linini, 1).Select 
ActiveSheet.Paste 
Application.CutCopyMode = False 

‘Copying data of the “reserva filial.xlsm” 
caminho = ThisWorkbook.Path 
Workbooks.Open caminho & "\" & "reserva filial.xlsm" 

'copying data 
Range("A1").Select 
linini2 = 2 
'Select the last row 
Selection.End(xlDown).Select 
linfin2 = Selection.Row 
'Select the last column 
Selection.End(xlToRight).Select 
colfin2 = Selection.Column 
Range(Cells(linini2, 1), Cells(linfin2, colfin2)).Select 
Selection.Copy 
Windows("Trabalho_Felipe Granado_v8.xlsm").Activate 
Sheets("Total").Select 

'Select the last row with value 
    Selection.End(xlDown).Select 
    k = ActiveCell.Row + 1 

Cells(k, 1).Activate 


Application.Windows("reserva filial.xlsm").Visible = False 

'pasting data "reserva filial.xlsm" in the sheet "Total" 

ActiveSheet.Paste 
Application.CutCopyMode = False 

    Columns.HorizontalAlignment = xlCenter 

答えて

0

コードのこの部分は

'Select the last row with value 
    Selection.End(xlDown).Select 
    k = ActiveCell.Row + 1 

Cells(k, 1).Activate 

シート内のデータの末尾に移動次に、"reserva filial.xlsm"のデータを貼り付けます。

これは最初のパスで正常に動作しますが、コードを2回目に実行すると、最初のワークブックデータに貼り付けられます(2番目のワークブックのデータが失われます)。データの最後に移動して再ペーストします2番目のワークブックデータに追加します。

Excelプロジェクトがどのようにフィットするかによって、.ClearContentsメソッドを使用してSheets("Total")またはそのサブセットの内容全体を消去したい場合があります。

+0

ありがとう、マーク。あなたは、私がbegginingにこのコードを入れている右 です:。 薄暗い地域レンジ 設定された領域=シート(「トータル」)などの細胞(2、1).CurrentRegion region.ClearContents そして、それは動作します良い。クリックするたびに、すべてをクリアして現在または新規の生徒のリストを貼り付ける必要があります。 ありがとうございました – Granado

+0

すごくうれしいです。純粋なVBAコードの観点からはうまくいきます。 しかし、あなたのExcelプロジェクトが今後どのように進化するかを考えておくことをお勧めします。私が正しく思い出すと、 '.CurrentRegion'は空白の行とBLANK COLUMNSに当たるまで、セルの周りのすべてを選択します。したがって、「合計」シートの隣接する列に分析を追加した場合、それも削除されます。 これはまったく関係のないユーザーのケースかもしれませんが、私はそれをちょうど言及したいと思いました。それ以外の場合は、空白の行/行を残すようにメモをシートに追加するだけです。 –

0

Excelでは、Ctrl + Shift + Down(矢印)およびCtrl + Shift + Right(矢印)として機能します。今のところそれは大丈夫です。リストとしてのみ使用されます。私はあなたのアドバイスを本当に感謝しています。私は新しいVBAとStack Overflowのユーザーです。このコミュニティはあなたの貢献のすべてが非常に役に立ちます。

関連する問題