如何合并2个不同工作簿之间的数据?
问题描述:
我需要合并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
答
的这部分代码导航到的数据的在片材
'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")
或其子集的全部内容。
答
它在Excel中用作Ctrl + Shift +向下(箭头)和Ctrl + Shift +向右(箭头)。现在没关系,它只会作为一个列表使用。我真的很感激你的建议。我是一个新的VBA和Stack Overflow用户,而且这个社区非常有用,因为你的所有贡献。
谢谢,马克。你说得对 我已经把在beggining此代码: 昏暗的地区范围 设置区域=表(“合计”)细胞(2,1).CurrentRegion region.ClearContents 和它的作品精细。所以每次点击,我需要清除所有内容并粘贴当前或新生的列表。 再次感谢 – Granado
太棒了,很高兴你有它的工作。从纯粹的VBA代码角度来看,它运行良好。 但是,我建议您考虑一下您的Excel项目将来如何发展。如果我正确地记得'.CurrentRegion'选择一个单元格周围的所有东西,直到它碰到空行和空白列。因此,如果您曾向“总计”表中的相邻列添加了一些分析结果,那么也会将其删除。 这可能是一个完全不相关的用户案例,但我想我会提及它以防万一。如果一切都失败了,您可以在工作表中添加一个注释,说明留下空白的列/行! –