【问题标题】:If statement with Match function in vba [duplicate]如果在vba中具有匹配功能的语句[重复]
【发布时间】:2021-03-27 16:22:54
【问题描述】:

我正在开发可用于运动卡的收藏数据库。我几乎完成了所有工作,但我在 VBA 中遇到了 Match 函数的问题。我尝试将它与 If 语句结合使用,但如果 Match 函数没有返回结果,则宏停止。这是这部分代码:

Dim shortnamee As Integer
Dim ittkeres As Range
    Set ittkeres = Range("X:X") 
    shortnamee = WorksheetFunction.Match(Range("V2"), ittkeres, 0)
    Range("V3") = shortnamee
    If Range("V3").Value > 0 Then

这部分连接到第一页,我可以在其中将新项目添加到集合表中,在这里它会从串联名称中查找重复项(V2 - 新项目名称;X:X - 集合的其余部分是的,已经上传了。 非常感谢!

【问题讨论】:

  • 我不知道您要达到什么目的,但Dictionaries 是检查是否存在某些价值的好方法。因为Application.Match 对执行方式征税过多。
  • 谢谢达米安。这也是个好主意,但我选择了不同的方式。

标签: excel vba if-statement match


【解决方案1】:

Application.Match

  • 宁可使用Application.Match,它允许您使用例如测试其结果。 IsErrorIsNumeric
Dim ittkeres As Range: Set ittkeres = Range("X:X")
Dim cIndex As Variant
cIndex = Application.Match(Range("V2").Value, ittkeres, 0)
If IsNumeric(cIndex) Then
    Range("V3").Value = ittkeres.Cells(cIndex).Value
Else
    ' No match found.
End If

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-30
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 2019-06-15
    相关资源
    最近更新 更多