【问题标题】:How can multiple users run macros on a shared excel file?多个用户如何在共享的 excel 文件上运行宏?
【发布时间】:2023-03-10 01:19:01
【问题描述】:

我在共享位置有一个 Excel 文件,其中多个用户(在本例中为 4 个)同时访问该文件。

此文件有一个“主数据”选项卡,其中所有基本数据都在那里,然后有 4 个相同的选项卡(每个用户一个)。

每个用户选项卡都有一组过滤器,用户可以使用这些过滤器根据所选过滤器提取相关数据,并可以添加或编辑行。一旦用户完成编辑/添加行,用户将提交将在主数据选项卡中更新/附加的数据。

用户可以在过滤器中选择相同或不同的选项。当多个用户同时单击提交按钮(宏)时,我遇到了错误。

我该如何解决这个问题?

【问题讨论】:

  • 您正在尝试使用共享的 Excel 文件作为数据库?这通常是一个坏主意。研究一个实际的数据库解决方案,如 Oracle、MySQL 甚至 MS Access。您可以拥有多个用户可以使用前端同时更新的后端。 Excel 不是为该功能而设计的。
  • +1 对@tigeravatar 的评论:这不是你想用 Excel 做的事情。您仍然可以使用 excel 作为前端,但至少您应该在 Access 或其他数据库中拥有实际数据。您还应该考虑如何处理不同用户对同一行的同时编辑,以及如何解决在提交两组更改时更新这些行的问题:一个用户的更改很容易覆盖另一个用户的编辑。

标签: vba excel


【解决方案1】:

就像一些 cmets 所说,Excel 不是为此而设计的......

但是如果你想使用 Excel,我会推荐这样的东西:

每次有人写入主数据时,您都必须“锁定”主数据选项卡。只需在单元格中放置一个布尔值,在您写入时将其设置为 true,并在完成更改主数据选项卡后立即将其设置为 false。

现在,如果有人想同时更改主数据选项卡中的值,请检查布尔值是否设置为 true。如果是,则需要等待,如果不是,则可以写入数据。

【讨论】:

    【解决方案2】:

    除了 Manuel Allenspach 的回复,我的建议是创建一个队列。

    队列应该有一个用户处理点和其他用户等待点。

    然后,在运行代码之前,您应该检查以确保没有两个用户的宏同时更新数据库。

    【讨论】:

      猜你喜欢
      • 2015-06-21
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 1970-01-01
      • 2014-12-09
      • 1970-01-01
      • 1970-01-01
      • 2017-05-30
      相关资源
      最近更新 更多