Application.Match返回错误的列号

我想用Application.Match和VBA一起来查找一个列号,然后用它作为另一个函数中的参数。

我的代码到目前为止是:

  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,表示“Delivered”列应该在B2中。

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

我希望有人能够对此有所了解

问候

你确定currentWb是你认为的那个吗? 通常,刚才打开的工作簿将是活动工作簿,因此打开源工作簿之前可能需要将其分配给该variables。