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

Excel for Mac运行VBA宏报错1004:该操作无法在多重选区执行如何解决

报错根本原因

你遇到的1004报错本质是Mac版Excel的兼容性问题+代码隐含的不规范写法触发的,有两个核心诱因:

  1. 你是先复制筛选后的不连续可见区域,再执行新建工作表操作,Mac版Excel的剪切板对多区域选中的内容支持性极差,新建工作表的操作会中断剪切板的多区域内容识别,触发多选区操作报错;
  2. 代码里的Range("BB1")没有指定所属工作表,如果运行代码时当前激活的不是MTI Data工作表,会导致筛选的唯一值写入错误位置,同时x的取值异常,也会触发新建工作表名称非法报错。

修复步骤

  • 调整操作顺序:先新建并重命名工作表,再执行复制粘贴操作,避免剪切板内容在操作切换时失效
  • 所有Range对象明确绑定所属工作表,避免当前活动页变动导致的取值错误
  • 新增工作表名称合法性校验,避免重名、带特殊字符的名称触发报错

修正后的代码

Sub SegregateData()
'--按团队拆分数据并删除最后一列公式列
Dim x As Range
Dim rng As Range
Dim last As Long
Dim sht As String
Dim newSht As Worksheet

Application.ScreenUpdating = False

'指定数据源工作表
sht = "MTI Data"

With Sheets(sht)
    '获取数据源最后行号
    last = .Cells(.Rows.Count, "A").End(xlUp).Row
    Set rng = .Range("A1:Q" & last)
    
    '提取Q列唯一值到BB列,明确指定写入位置为当前工作表
    .Range("Q1:Q" & last).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("BB1"), Unique:=True
    
    '遍历所有唯一值
    For Each x In .Range(.Range("BB2"), .Cells(.Rows.Count, "BB").End(xlUp))
        '先校验工作表是否已存在,避免重名报错
        On Error Resume Next
        Set newSht = Sheets(x.Value)
        On Error GoTo 0
        If Not newSht Is Nothing Then
            '如果工作表已存在先删除,也可以根据需求改成跳过
            Application.DisplayAlerts = False
            newSht.Delete
            Application.DisplayAlerts = True
        End If
        
        '先新建工作表
        Set newSht = Sheets.Add(After:=Sheets(Sheets.Count))
        newSht.Name = x.Value
        
        '再执行筛选复制粘贴
        rng.AutoFilter Field:=17, Criteria1:=x.Value
        rng.SpecialCells(xlCellTypeVisible).Copy Destination:=newSht.Range("A1")
        
        '删除Q列
        newSht.Range("Q:Q").Delete
        Set newSht = Nothing
    Next x
    
    '关闭筛选
    .AutoFilterMode = False
    '清空辅助列BB
    .Range("BB:BB").ClearContents
End With

'重置应用设置
With Application
    .CutCopyMode = False
    .ScreenUpdating = True
End With

End Sub

其他注意事项

如果修改后还是报错,可以检查Q列的唯一值是否包含/ \ ? * [ ]这些Excel工作表名称禁止的特殊字符,或者名称长度超过31个字符,调整对应名称即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:36:03