如何将= MATCH(VALUE(A1),VALUE(B:B),0)转换为vba代码

时间:2016-07-22 20:17:34

标签: excel excel-vba vba

我正在寻找一种方法在excel中的vba中执行= MATCH(VALUE(A1),VALUE(B:B),0)。

我有两个匹配的列,可能是整数或字符串类型。我知道如何做到这一点,但它涉及许多if语句。我想知道是否有一种优雅的方式来做到这一点。

2 个答案:

答案 0 :(得分:0)

您可以使用WorksheetFunction.Match方法执行此操作...下面的示例(评论说明):

{{1}}

答案 1 :(得分:0)

Evaluate()有一个限制,仅限最多255个字符,如果你的公式过长则会出错。

我建议使用Application.Match(),而不是Application.WorksheetFunctions.Match()

当没有Macthed值时,两种方法都是相同的,除了响应。

您可以使用IsError(Application.Match())检查值是否匹配,而无需错误处理程序。 如果无法匹配则返回True。

使用Application.WorksheetFunctions.Match()将需要错误处理程序。