我有一个工作簿文件,由一个团队和几个人使用;但很快不同的团队(2 个团队;8 个人)就会访问我们公司共享上的文件...这可能会扩展到更多的团队和人员。 有人担心,两个团队使用同一份工作簿会产生“保存冲突”,从而难以同步孤立团队之间的工作流程。大多数情况下,用户只需打开它并刷新数据连接并读取文件中的数据 - 但有时用户可能希望在早上刷新后保存工作簿,或者他们可能想要保存他们所做的另一个小更改。
我的问题:
假设USER1
工作簿已打开,是否有一种简单的方法USER2
可以提示USER1
关闭工作簿并授予USER2
编辑用户访问权限。记住USER1-Team1
并USER2-Team2
使用相同的数据,但彼此不认识或没有密切的工作关系;因此,电话或电子邮件对他们的工作流程来说并不方便。
背景:
工作簿包含来自 SQL Server 数据源的 PowerPivot 数据模型。当用户刷新工作簿时,他们正在更新数据模型以及与之相关的数据透视表报告。
编辑:工作簿的版本是带有 Power Pivot 的 Excel 2013
我考虑过的解决方案...
- 1)包含儿童的主文件-- 这是一种“从架子上拉取更新的工作副本”的方法,其中有一个主文件(网络共享
MasterFileReportsHere.xlsx
中的“ ”myNetwork\Path\Location
),当主文件中的更新准备好时,1 位高级用户将进行沟通,并将其下载到单独的团队工作簿中,供不同的团队使用(“Group1 Reports Here.xlsx
”,“Group2 Reports Here.xlsx
” 中的myNetwork\WhoKnows\WhereTheyPutIt
或local C:
或ThumbDrive
)。
您如何看待这一策略?我认为这会造成风险,用户不会在他们应该下载文件时下载,然后您就会得到不同的版本,而不是一个真正的主版本。此外,您无法真正知道他们可能将子文件移动到了哪里(或者至少,据我所知没有办法)。
- 2)文件正在使用>通知——我已经向他们展示了当
USER1
文件打开时,如何USER2
选择“文件正在使用>通知”选项,该选项会在文件打开进行编辑时提示。
此 if 功能的缺点是它只是告知
USER2
何时USER1
关闭了文件,然后提示USER2
以编辑模式打开文件。USER1 可以在几分钟或几小时后关闭它,而 USER2 想要编辑它,这并不是他们所需要的。
3)EXCEL:查看 > 共享工作簿-- 我曾简要研究过共享工作簿功能,但工作簿中有表格,而此功能不支持带有表格的工作簿(我可以研究删除表格)
- 我以前从未使用过它,但它似乎有诸如“
Allow changes by more than one user at the same time
”之类的选项。启用此功能后,您似乎可以配置这些选项-->更新变更作为When the file is saved
或者Automatically (x Minutes): USER1-SaveMyFile and USER2-SeeTheirChanges
或者Automatically (x Minutes): USER2-SeeTheirChanges
//用户之间的冲突变更作为Ask me which changes win
或者The changes being saved win
。
- 我以前从未使用过它,但它似乎有诸如“
有人用过这个吗?他们会推荐吗?我是否应该考虑在他们的文件中寻找表格以将其删除(这可能不是一个选择)。
答案1
可以使用 VBA 和 Shell 发送信息对于用户来说,但你的工作网络权限可能会阻止这种情况。
信息句法
msg {<UserName> | <SessionName> | <SessionID>| @<FileName> | *}
[/server:<ServerName>] [/time:<Seconds>] [/v] [/w] [<Message>]
看一下paul bica 的回答使用 Msg 和VBA 向用户发送消息. 集成史蒂文的解决方案为了查找已打开工作簿的用户。
由于我的工作场所网络状况不佳,我无法成功测试。不过我希望这个答案至少能给你指明正确的方向。