VBA匹配变量范围

时间:2017-02-25 17:51:06

标签: excel vba excel-vba

我的.Match功能有问题。如果我在其中设置一个带引号和字母的范围(" A:A")就可以了。但是当我尝试用变量设置它时,它会产生1004错误。

这有效:

a = WorksheetFunction.Match(Range("A1"), Sheets("Data").Range("A:A"), 0)

这不起作用:

a = WorksheetFunction.Match(Range("A2"), Sheets("Data").Range(Cells(a, 4), Cells(a + 5, 4)), 0)

如何在.Match函数中设置变量范围?

2 个答案:

答案 0 :(得分:2)

您必须使用完全限定(最多worksheet个对象)range引用,否则它们默认为当前“活动”表

  a = WorksheetFunction.Match(Range("A2"), Sheets("Data").Range(Sheets("Data").Cells(a, 4), Sheets("Data").Cells(a + 5, 4)), 0)

答案 1 :(得分:1)

您可能会发现在这里使用Resize()更容易:

a = WorksheetFunction.Match(Range("A2"), _
                            Sheets("Data").Cells(a, 4).Resize(6, 1), 0)
相关问题