Excel VBA设置ConflictResolution为xlOtherSessionChanges报错求助
Excel VBA 设置ConflictResolution时抛出"Method 'ConflictResolution' of object '_Workbook' failed"错误
场景还原
- 创建名为
test.xlsm的Excel文件,转为公司网络文件夹中的共享工作簿 - 用户A打开文件,在Sheet1的A1单元格输入“user A data”并保存
- 用户B打开文件,在Sheet1的A1单元格输入“user B data”,通过点击冲突解决窗口的「接受我的所有更改」覆盖了用户A的数据
需求与尝试
我希望通过VBA阻止这种数据覆盖行为,在ThisWorkbook中添加了以下代码:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) ActiveWorkbook.ConflictResolution = xlOtherSessionChanges End Sub
但运行时抛出错误:
Method "ConflictResolution' of object'_Workbook' failed
参考信息
根据官方文档中xlSaveConflictResolution枚举的定义:
xlUserResolution(默认):弹出冲突解决对话框,由用户选择处理方式xlLocalSessionChanges:接受当前会话的更改,覆盖其他会话的内容xlOtherSessionChanges:接受其他会话的更改,当前会话的修改会被舍弃
想问下有没有人遇到过这个问题?为什么设置ConflictResolution = xlOtherSessionChanges会失败?要怎么正确通过VBA配置冲突解决规则,避免数据被覆盖?
内容的提问来源于stack exchange,提问作者xingtan
相关产品推荐
相关产品推荐

