【问题标题】:Copy Range from Form, and Paste into Workbook (preferably closed)从表单复制范围,并粘贴到工作簿中(最好关闭)
【发布时间】:2011-03-30 05:15:02
【问题描述】:

我有一个启用宏的表单,旨在让数据录入人员团队通过交易编号记录他们的日常工作。随着形式的发展,它是非常基本的。但是,我需要为一个按钮编写一个宏,让每个人在轮班结束时将他们的记录提交到主表。我需要复制范围数据并粘贴到主工作簿中,并将人名和日期添加到各个行中。

我不确定如何便于复制和粘贴到已关闭的工作簿,或者如何防止多人同时提交表单时出现问题。谁能给点建议?

【问题讨论】:

    标签: vba excel


    【解决方案1】:

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

    【讨论】:

    • 感谢您的建议。我很想让它更新数据库,但我不得不在工作中这样做,而不能访问数据库——所以我几乎没有选择将整个东西保存在 Excel 中。对不起,我应该提到的。
    • MS Access 数据库?文件锁定是我们使用数据库的原因之一。
    • 甚至不能访问。在 Office 中,我有 Excel、Word 和 PP,所以它确实必须在 Excel 中。
    【解决方案2】:

    您只需打开工作簿、插入然后关闭工作簿即可完成此操作。没有简单的方法可以插入到已关闭的工作簿中。请注意,如果您试图对用户隐藏某些内容,则可以将内容隐藏起来。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        主要选择是将项目发送到数据库。由于这已经排除,我建议您将数据写入一个普通的旧 .csv 文件。这将更容易实现,并且不受 excel 行数限制。

        【讨论】:

          猜你喜欢
          • 2012-09-02
          • 1970-01-01
          • 2017-07-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多