2017-02-15 96 views
1

我需要合併2個學生在不同工作簿(控股和子公司)之間的註冊。所以當我點擊「生成圖形」按鈕時,數據被合併到「總計」表中,然後計算課程數量(Excel,Word,Access ...)並在圖表「圖形」中生成圖形。第一個測試是可以的,但是當我再次點擊時,這個列表會隨着子公司工作簿的相同數據而增加。我需要更改代碼中的某些內容,但我不知道該怎麼做。 你能幫我嗎? 我的代碼是:如何合併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"數據。

第一遍可以正常工作,但是第二次運行代碼時,您(正確)粘貼第一個工作簿數據,導航到數據末尾並重新粘貼在第二個工作簿數據中。

根據您的Excel項目如何組合在一起,您可能希望使用.ClearContents方法清除Sheets("Total")或其子集的全部內容。

+0

謝謝,馬克。你說得對 我已經把在beggining此代碼: 昏暗的地區範圍 設置區域=表(「合計」)細胞(2,1).CurrentRegion region.ClearContents 和它的作品精細。所以每次點擊,我需要清除所有內容並粘貼當前或新生的列表。 再次感謝 – Granado

+0

太棒了,很高興你有它的工作。從純粹的VBA代碼角度來看,它運行良好。 但是,我建議您考慮一下您的Excel項目將來如何發展。如果我正確地記得'.CurrentRegion'選擇一個單元格周圍的所有東西,直到它碰到空行和空白列。因此,如果您曾向「總計」表中的相鄰列添加了一些分析結果,那麼也會將其刪除。 這可能是一個完全不相關的用戶案例,但我想我會提及它以防萬一。如果一切都失敗了,您可以在工作表中添加一個註釋,說明留下空白的列/行! –

0

它在Excel中用作Ctrl + Shift +向下(箭頭)和Ctrl + Shift +向右(箭頭)。現在沒關係,它只會作爲一個列表使用。我真的很感激你的建議。我是一個新的VBA和Stack Overflow用戶,而且這個社區非常有用,因爲你的所有貢獻。

相關問題