Application.Match返回错误的列号

时间:2016-06-16 10:06:32

标签: excel vba excel-vba

我想使用Application.Match和VBA来查找列号,然后将其用作Another函数中的参数。

到目前为止我的代码是:

 Set openWb = Workbooks.Open(filepath & Path)
 Set openWs = openWb.Sheets("Sheet1") 
 Set currentWb = ActiveWorkbook

 currentWb.Sheets("Sheet1").Cells(2,3).Value = Application.Match("Delivered", openWs.Range("A2:R2"),0)

数组A2:R2包含一组列标题。在我的示例中,“Delivered”标头位于M2或列号13中。我的问题是该函数返回值2,表示“已传递”列应该在B2中。

我知道Application.Match返回一个相对位置,但是范围跨度从A2到R2应避免任何相关问题。只有一列带有“Delivered”文本。

我希望有人可以对此有所了解

此致

1 个答案:

答案 0 :(得分:1)

您确定currentWb是您认为的吗?通常,您刚打开的工作簿将是活动工作簿,因此您可能需要在打开源工作簿之前将其分配给变量