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

工作表激活时调用AcceptAllChanges报错:Method 'AcceptAllChanges' of object '_Workbook' failed

问题分析与修复方案

我来帮你排查这个报错的原因哈!你遇到的 Method 'AcceptAllChanges' of object '_Workbook' failed 错误,主要是两个关键问题导致的:

  • 参数使用错误:Workbook对象的AcceptAllChanges方法里的Where参数,并不接受工作表对象(比如你传的ActiveSheet)。它的合法取值是XlWhere枚举值(像xlWhereAll、xlWhereNotInList这类),用来定义筛选更改的逻辑规则,不是用来指定某个工作表的。
  • 方法选错了对象:你的需求是接受当前激活工作表的所有更改,但Workbook的AcceptAllChanges是针对整个工作簿生效的。要单独处理单个工作表的更改,应该用Worksheet对象的AcceptAllChanges方法。

修复后的代码

Private Sub Worksheet_Activate()
    If ActiveWorkbook.MultiUserEditing Then
        ' 针对当前触发事件的工作表接受所有更改
        Me.AcceptAllChanges
    End If
End Sub

代码说明

  • 这里用Me指代当前触发Worksheet_Activate事件的工作表,直接调用它的AcceptAllChanges方法,就能精准处理该工作表的所有共享更改,不会再因为参数不匹配报错。
  • 如果需要更精细化的筛选(比如只接受特定用户、特定时间的更改),可以给Worksheet.AcceptAllChanges传入可选参数,示例如下:
    ' 仅接受当前工作表中由"John"做出的所有更改
    Me.AcceptAllChanges Who:="John"
    

内容的提问来源于stack exchange,提问作者Naz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:58:47