VBA EXCEL合并工作书进入现有的练习册

时间:2014-01-31 13:36:54

标签: excel vba excel-vba merge

我正在尝试将工作簿与现有工作簿合并,我将如何使用Visual Basic 2010 Express版本进行此操作?

我想要完成的是我有一个名为“MASTER SCHEDULE”的主文件。在VB表单上,我将有一个按钮,将该文件复制到用户桌面上,并在某种图片框/查看框中打开复制的版本,这仍然允许我编辑复制的Excel工作表。一旦我完成了向复制的excel文件添加信息(无删除,只是添加信息),就会出现一个名为“SAVE”的按钮。单击保存按钮后,我希望复制的Excel工作表与MAIN“MASTER SCHEDULE”文件合并/覆盖。

我将尝试用一个例子更清楚地解释这一点:

在单元格A1中的主主计划中,我的值为3.我打开此VB 2010表单(这会自动在我的桌面上创建主计划的副本并在某种图片/查看框中打开它) ,我将值4添加到单元格B1中。现在,当我单击“保存”时,复制的工作簿和主工作簿将“合并”在一起(复制文件上的更改将添加到主文件中)。所以现在如果我打开主“MASTER SCHEDULE”文件,它在单元格A1中的值为3,在单元格B1中的值为4.

这可能吗?如果是这样,我将如何合并这样的两个工作簿?除了这种合并能力之外,我已经完成了一切。

请帮助我

1 个答案:

答案 0 :(得分:1)

有一个saveas功能。代码示例:

ActiveWorkbook.SaveAs "File\Name\With\Path" & ".Extension", xlCSV ' the last thing is the      file type. yours would probably be an excel type so: XlExcel7

如果您查看“Workbook.SaveAs Method(Excel)”的帮助文件,它将拥有此saveas函数的帮助文件。

所以基本上,你说复制的那个与实际的完全相同,复制的那个是你实际添加数据的那个。所以基本上,这个函数只需要复制一个,然后覆盖主函数。因此,对复制的所做的任何更改都将反映在主要版本中。

注意:我相信如果添加

,会弹出覆盖消息“你要覆盖吗?”

Application.DisplayAlerts = False之前和之前 Application.DisplayAlerts = true之后它不会弹出那个消息,它就会这样做。

修改

当点击按钮保存时,有一个sub来比较他们正在使用的工作簿和master。循环遍历所有数据并测试以查看主表中的数据是否与其数据不同,并突出显示更改,弹出消息框以在保存之前查看更改,有办法选择是覆盖或其他内容。

ORRR

使用dropbox。免费。基本上你将文件保存到一个投递箱帐户,然后你与其他人共享你的投递箱,并有权限和事情,每当用户更改文件,他们上传他们的更改(一个简单的按钮点击)和每个人else会弹出一个声明已经进行了更改,然后点击一个小按钮,用更新来更新文件。它还有修改控制,你可以回滚,它有跟踪,用户可以看到究竟改变了什么以及它曾经是什么,并且如果jimmy在bob之前保存,当bob转到保存它只会合并更改。还有例如,如果jimmy更改数据,使a1 = "test"和bob进行了更改a1 = "testING",那么它会弹出一条消息说有冲突,并且它会显示对bob的冲突更改,所以他可以取消,覆盖或有选择地决定要覆盖哪些更改以及要回滚哪些更改。

google dropbox,你会发现很多细节,非常适合多个用户编辑1个文件。为什么重新发明轮子:)