2010-05-11 68 views
0

我有哪里驻留在Excel宏服务器10用户需要能够运行相同的宏在Excel中

会有10个不同的工作站,将需要对自己的工作表中运行该宏大约10个用户。

如何从多个用户想要在自己的工作表上运行它的集中位置运行宏?

我需要的原因,它集中是因为宏将需要不断更新,我们不能把它驻留在本地,因为那时会有它

的答案如下建议的一个10种不同的情况下,也许一个插件是要走的路?如果我确实创建了一个加载项,它会如何知道有一个宏更新?我每次更新宏时是否需要分发加载项?

+0

为什么你的宏需要“不断”更新? – Mathias 2010-05-11 17:01:53

回答

1

如果用户打开其工作簿并打开服务器工作簿,则在“打开宏打开”下拉列表中选择“所有打开工作簿”后,宏将在视图 - >宏对话框中可用。

不过,我认为有三个潜在的问题:

1 - 如果这两个工作簿是在Excel的两个不同的实例打开,那么每个工作簿将不显示其他宏。

2-服务器工作簿中的宏需要足够聪明才能在其他工作簿上操作。很可能需要提示用户输入正确的工作簿和/或工作表。

3-您可能会在远程宏执行过程中收到安全警告。 (不知道这个)

我可能会创建一个加载宏封装我的宏,并将其安装在远程用户的机器上,以便他们可以单击按钮在本地执行它。

更新基于编辑
外接程序应该能够远程拉动新的代码来更新它执行的宏。例如this等。这可能是一个矫枉过正的解决方案。

+0

也许一个插件是要走的路?如果我确实创建了一个加载项,它会如何知道有一个宏更新?我每次更新宏时是否需要分发加载项? – 2010-05-11 15:51:39

+0

我认为您可以远程拖出包含宏代码的文本文件,然后让您的加载项将其添加到当前工作簿中,然后执行它。我在我的答案中添加了一个链接,可能有所帮助。 – 2010-05-11 15:58:07

1

我会考虑让每个用户的工作簿都包含您需要它们运行的​​宏,然后每个用户都可以在他们的机器上本地调用它。

否则,只需创建一个共享工作簿,并让所有用户使用该工作簿。

这实际上取决于工作簿的使用情况以及您想要完成的工作。如果你能提供更多细节,我可以更具体地帮助你。

+0

更新了我的问题 – 2010-05-11 15:43:22

+0

如何在用户运行宏之前先测试以确保服务器工作簿可用(没有其他人打开它,http://support.microsoft.com/kb/209189)。然后,当你调用宏打开你的主服务器工作簿,然后从那里调用该宏(http://www.vbaexpress.com/kb/getarticle.php?kb_id=279)。一旦宏完成,请务必关闭您的服务器工作簿。 只有一个人可以一次更新,所以如果有人在更新,只需提示其他用户等待2-5分钟。 – Fink 2010-05-11 16:50:35

0

如果您的问题是要确保人们使用最新的宏,您可能需要查看VSTO。其中一个好处是您可以使用ClickOnce进行部署,其中包括允许您在一个位置发布代码,并在发生更改时自动下载和更新用户的代码。