首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VBA中的Application.match

VBA中的Application.match
EN

Stack Overflow用户
提问于 2017-05-24 21:16:36
回答 2查看 49.3K关注 0票数 1

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

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

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

问题出在哪里?它的解决方案是什么?

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

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-24 21:23:10

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

代码语言:javascript
复制
Application.Match(1, ws.range("AD:AD"),0)

其中ws是您的工作表。

票数 7
EN

Stack Overflow用户

发布于 2017-05-24 21:23:13

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

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

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44159529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档