Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA中的Application.match_Vba_Excel_Match - Fatal编程技术网

VBA中的Application.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

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

但每当我尝试运行代码时,Else条件总是正确的。尽管我希望它进入If条件,因为列AD有一个值为1的单元格

列AD中的单元格值主要是公式的结果,AD1和AD2除外,前者有字符串检查Titile和Author是否匹配,后者的值为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

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

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

请参阅此处的更多信息: