我使用"Application.match“来查看工作表的AD列是否包含"1”。
但是每当我尝试运行我的代码时,"Else“条件总是真的。虽然我希望它输入"If“条件,但因为列AD有一个值为"1”的单元格。
列AD中的单元格的值大多是公式的结果,除了AD1和AD2之外,前者的字符串为"Check if Titile&Author Match",后者的值为"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发布于 2017-05-24 21:23:10
您需要指定在两个匹配项中搜索的范围。
Application.Match(1, ws.range("AD:AD"),0)其中ws是您的工作表。
发布于 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
https://stackoverflow.com/questions/44159529
复制相似问题