2017-02-15 52 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用户,而且这个社区非常有用,因为你的所有贡献。

相关问题