【问题标题】:Application.match in VBAVBA 中的应用程序匹配
【发布时间】:2017-05-24 13:16:36
【问题描述】:

我正在使用“Application.match”来查找工作表的 AD 列是否包含“1”。

但每当我尝试运行我的代码时,“Else”条件始终为 True。虽然我希望它进入“If”条件,但因为 AD 列有一个值为“1”的单元格。

AD 列中单元格的值大多是公式的结果,除了 AD1 的字符串“Check if Titile&Author Match”和 AD2 的值“0”。

有什么问题。有什么解决办法?

我希望您能提出一个仍然使用“.match”方法的解决方案。这是因为据我了解,“.match”方法返回匹配项在范围内的相对位置。我计划稍后在我的代码中使用该值。

Private Sub CmdLocateDta_Click()

Dim SearchColumn As Integer

If Not IsError(Application.Match(1, "AD:AD", 0)) Then
    SearchColumn = Application.Match(1, "AD", 0)
    MsgBox "Data has been located." & vbNewLine & _
           "You can now input the Lending Information below."
Else
    MsgBox "There seems to be no such book in the Database." & _
            vbNewLine & "Please re-check your input."
End If

End Sub

【问题讨论】:

    标签: vba excel match


    【解决方案1】:

    您需要指定在两个匹配项中搜索的范围。

    Application.Match(1, ws.range("AD:AD"),0)
    

    ws 是您的工作表。

    【讨论】:

      【解决方案2】:

      问题在于您使用Application.Match 的方式。 应该是这样的:

      If Not IsError(Application.Match(1, Range("AD:AD"), 0)) Then

      在此处查看更多信息:https://msdn.microsoft.com/en-us/library/office/ff835873.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-12
        • 2011-10-01
        相关资源
        最近更新 更多