我的.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
函数中设置变量范围?
答案 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)