搜索功能用户表单

时间:2017-05-21 20:32:48

标签: excel vb.net

以下代码是if语句,但搜索结合在一起。例如,如果在D列中找到了单元格* BA $ 1的值(部分或全部,因此'搜索'而不是相等),则在col J中输入单元格$ AZ $ 1的内容。否则输入单元格的价值$ AY $ 1。如果满足第一个条件(例如$ AZ $ 1),我的VBA将正确返回,但是,它返回#Value!而不是$ AY $ 1中的值。 似乎没有语法错误,我已经尝试了各种编写这行代码的方法。你能看到问题在哪里吗?如果这还不够清楚,请告诉我。谢谢

  With Sheets("XXXX")
  With .Range("D2", .Cells(.Rows.Count, "D").End(xlUp)).Offset(0, 6)
    .Formula = "=IF(SEARCH($BA$1, D2, 1),$AZ$1,$AY$1)"
  End With
  End With

1 个答案:

答案 0 :(得分:0)

如果不匹配,

zero不返回falseIF(ISERROR(...),value-if-error,value-if-ok),则会返回错误。因此,匹配的适当测试应该是

  • 使用.Formula = "=IF(ISERROR(SEARCH($BA$1, D2)),$AY$1,$AZ$1)" ' ^^^^^^^^ ^^^^^^^^^^^^ 检查错误,但您需要撤消结果的顺序:

    ISNUMBER
  • 或使用 .Formula = "=IF(ISNUMBER(SEARCH($BA$1, D2)),$AZ$1,$AY$1)" ' ^^^^^^^^ 检查搜索结果是否为数字。这不会改变结果的顺序。我通常更喜欢这个选项:

    SEARCH

P.S。 1的第三个参数(起始位置)默认为Persistence JPA2.1,所以我省略了它。

相关问题