【问题标题】:Error while VBA adding IF formula in validation listVBA 在验证列表中添加 IF 公式时出错
【发布时间】:2018-03-04 00:02:57
【问题描述】:

当我尝试通过 vba 代码添加 IF 公式时,我收到“应用程序定义或对象定义”错误。我检查了我所有的参考资料,它们似乎是正确的。工作表不受保护。对此错误一无所知,非常感谢任何帮助。

    With Range("C3").Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="=IF(B3="""","""",'Sheet3'!$A$1:$A$2)"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
End With

【问题讨论】:

  • 更新:调试时“.Add”代码行出现错误。
  • 如果你删除Type:=AlertStyle:=Operator:=Formula1:=,你能试试它是否有效吗?不要删除它们之后的东西,只需删除这些部分。
  • @Moacir 如果删除所有内容,则会出现it is not optional 的错误消息。因为类型是必需的。而当Operator为x1Between时,需要指定公式2
  • @danieltakeshi 我的印象是,由于第一个字段是 Type,第二个字段是 AlertStyle 等,因此在填写这些字段时必须为其命名是多余的。谢谢
  • 在我的测试中工作得非常好。检查Sheet3 存在且C3 不受保护

标签: excel excel-2007 vba


【解决方案1】:

如果您在B3 中寻找空单元格,请尝试将您的公式更改为Formula1:="=IF(COUNTBLANK(B3)=1,"""",'Sheet3'!$A$1:$A$2)"。如果有帮助,如果B3 不是空单元格,则没有错误..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    相关资源
    最近更新 更多