You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 14:27:15