【发布时间】:2011-03-30 05:15:02
【问题描述】:
我有一个启用宏的表单,旨在让数据录入人员团队通过交易编号记录他们的日常工作。随着形式的发展,它是非常基本的。但是,我需要为一个按钮编写一个宏,让每个人在轮班结束时将他们的记录提交到主表。我需要复制范围数据并粘贴到主工作簿中,并将人名和日期添加到各个行中。
我不确定如何便于复制和粘贴到已关闭的工作簿,或者如何防止多人同时提交表单时出现问题。谁能给点建议?
【问题讨论】:
我有一个启用宏的表单,旨在让数据录入人员团队通过交易编号记录他们的日常工作。随着形式的发展,它是非常基本的。但是,我需要为一个按钮编写一个宏,让每个人在轮班结束时将他们的记录提交到主表。我需要复制范围数据并粘贴到主工作簿中,并将人名和日期添加到各个行中。
我不确定如何便于复制和粘贴到已关闭的工作簿,或者如何防止多人同时提交表单时出现问题。谁能给点建议?
【问题讨论】:
让它更新一个数据库,然后在一天结束时从中生成报告。我还建议每次用户输入记录时将其插入数据库,以便在断电的情况下,他们当天的所有工作都不会丢失。这也可能会减少并发问题的数量,因为用户将定期添加记录而不是同时添加许多记录。搜索“VBA DAO”或“VBA ADODB”以查找有关如何使用 VBA 连接到数据库的示例。
【讨论】:
您只需打开工作簿、插入然后关闭工作簿即可完成此操作。没有简单的方法可以插入到已关闭的工作簿中。请注意,如果您试图对用户隐藏某些内容,则可以将内容隐藏起来。
【讨论】:
添加对“Microsoft Scripting Runtime”的引用以访问文件系统,然后使用简单的文件信号量来控制对公共工作簿的访问。
关于关闭的工作簿,您使用 Application.Workbooks.Open(...) 和 .Close
【讨论】:
主要选择是将项目发送到数据库。由于这已经排除,我建议您将数据写入一个普通的旧 .csv 文件。这将更容易实现,并且不受 excel 行数限制。
【讨论】: