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

使用Excel VBA创建数据验证列表时遇1004错误求解决

解决VBA生成数据验证列表的1004错误

你的代码触发1004错误主要是三个问题导致的,逐个修正就能解决:

  • 函数名称不符合VBA规则:VBA调用Excel公式必须用英文函数名,和Excel界面语言无关。把代码里的葡萄牙语函数DESLOC改成英文OFFSET,CONT.SE改成COUNTA。
  • 多余的Operator参数:数据验证的xlValidateList类型不需要Operator:=xlBetween这个参数,添加它会引发错误,直接删除即可。
  • 公式格式校验:你当前的引号转义是正确的,无需额外调整。

修正后的完整代码:

Sub MyVBAList()
    With Selection.Validation
        .Delete
        .Add _
             Type:=xlValidateList, _
             AlertStyle:=xlValidAlertStop, _
             Formula1:="=OFFSET($A$2,0,0,COUNTA($A$2:$A$100),1)"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End Sub

补充说明:

  • OFFSET($A$2,0,0,COUNTA($A$2:$A$100),1)的作用是动态引用A2到A列最后一个非空单元格的区域,作为下拉列表的数据源。
  • 如果你的Excel版本支持动态数组,也可以改用=FILTER($A$2:$A$100,$A$2:$A$100<>""),能自动过滤空值,无需依赖COUNTA计算行数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 13:01:55