使用VBA更改单元的数据验证

时间:2019-07-29 09:17:07

标签: excel vba

我有一份报告想保存为两份:一份用于当前的EMEA地区,第二份用于亚太地区。为此,我尝试使用以下代码修改一个单元格的数据验证,但是代码停止并显示

  

1004错误。

APAC_Country是在名称管理器中可访问的标准命名区域。我也尝试直接引用范围而不是命名范围,但结果相似。我需要修改什么?

With Sheets("Selection").Range("F5")
    With .Validation
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=APAC_Country"
    End With
End With

2 个答案:

答案 0 :(得分:2)

如果该单元格中已经有数据验证,则需要先删除它,然后再添加另一个。

' '

答案 1 :(得分:2)

在Pᴇʜ的评论之上,还有另外两种情况,您可能会收到1004错误消息:

  1. APAC_Country 不存在(您已经确认确实存在)。

  2. APAC_Country 确实存在,但是其范围仅限于其他工作表。转到Name Manager并检查范围的Scope。如果将其分配给其他工作表(不同于“选择”),则您的VBA代码将触发1004错误。范围需要分配给“选择”工作表或整个Workbook