VBA中的Application.match
我正在使用Application.match查找工作表的列AD是否包含1 但每当我尝试运行代码时,Else条件总是正确的。尽管我希望它进入If条件,因为列AD有一个值为1的单元格 列AD中的单元格值主要是公式的结果,AD1和AD2除外,前者有字符串检查Titile和Author是否匹配,后者的值为0 问题是什么。解决办法是什么 我希望您能建议一个仍然使用.match方法的解决方案。这是因为根据我的理解.match方法返回匹配在范围内的相对位置。我计划以后在我的代码中使用这个值VBA中的Application.match,vba,excel,match,Vba,Excel,Match,我正在使用Application.match查找工作表的列AD是否包含1 但每当我尝试运行代码时,Else条件总是正确的。尽管我希望它进入If条件,因为列AD有一个值为1的单元格 列AD中的单元格值主要是公式的结果,AD1和AD2除外,前者有字符串检查Titile和Author是否匹配,后者的值为0 问题是什么。解决办法是什么 我希望您能建议一个仍然使用.match方法的解决方案。这是因为根据我的理解.match方法返回匹配在范围内的相对位置。我计划以后在我的代码中使用这个值 Private S
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
您需要指定在两个匹配项中搜索的范围
Application.Match(1, ws.range("AD:AD"),0)
其中ws是您的工作表。您需要指定在两个匹配项中搜索的范围
Application.Match(1, ws.range("AD:AD"),0)
其中ws是您的工作表。问题在于您使用Application.Match的方式。 应该是这样的: 如果不是IsErrorApplication.Match1,RangeAD:AD,则为0
请参阅此处的详细信息:问题在于您使用Application.Match的方式。 应该是这样的: 如果不是IsErrorApplication.Match1,RangeAD:AD,则为0 请参阅此处的更多信息: