2011-03-29 100 views
0

我有一个启用宏的表单,旨在允许一组数据输入人员通过事务编号记录他们的日常工作。随着形式的发展,这是非常基础的。但是,我需要编写一个按钮的宏,让每个人在轮班结束时将他们的记录提交给主表。我需要复制范围数据并粘贴到主工作簿中,并将个人姓名和日期添加到单个行中。从表单复制范围并粘贴到工作簿(最好是关闭)

我不确定如何促进复制和粘贴到已关闭的工作簿,或者如何防止多人同时提交到表单。任何人都可以提供任何建议吗?

回答

1

使其更新数据库,然后在一天结束时生成报告。我还建议每次用户输入记录时都会插入数据库,以便在停电的情况下,他们所有的工作都不会丢失。这可能会减少并发问题的数量,因为用户会定期添加记录,而不是同时记录多条记录。搜索“VBA DAO”或“VBA ADODB”以查找有关如何使用VBA连接到数据库的示例。

+0

感谢您的意见。我很想让它更新一个数据库,但是我不得不在工作中这样做,而无需访问数据库 - 所以我没有选择将整个事情保存在Excel中。对不起,我应该提到。 – Kurt 2011-03-29 17:30:51

+0

MS Access数据库?文件锁定是我们使用数据库的原因之一。 – SQLMason 2011-03-29 17:39:04

+0

甚至没有访问权限。随着Office的发展,我有Excel,Word和PP,所以它必须在Excel中。 – Kurt 2011-03-29 17:53:17

0

添加对“Microsoft Scripting Runtime”的引用以访问文件系统,然后使用简单的文件信号量来控制对常用工作簿的访问。

关于关闭的工作簿,您使用Application.Workbooks.Open(...)和.Close

0

你可以简单地通过打开工作簿,插入,然后关闭工作簿做到这一点。没有简单的方法来插入已关闭的工作簿。请注意,如果您试图向用户隐藏某些内容,则可以隐藏这些内容。

0

主要选择是将项目发送到数据库。既然这已经排除了,我建议你将数据写入一个普通的.csv文件。这将更容易实施,并且不会受到Excel行限制的限制。

相关问题