在VBA中设置新的特定范围

我正在尝试为VLookup所需的数据设置一个新的范围。

比方说,我有下面的数据表作为数据透视表。 集合的顺序可以改变,一些集合可以不存在。

在这里输入图像描述

使用“ 查找”命令( 匹配function不起作用)我find了“Set1”的行号,将其命名为X.现在我要设置一个以Cells(X,1)开始并以Cells(X + 4,2)以查找一组中不同货物的数量。

我该怎么做?

在下面的代码中,第二行不起作用。

X = Lookup_Range.Find("Set1", Range("A1"), xlValues, xlWhole, xlByColumns, xlNext).Row Set Lookup_Range = Worksheets("Sheet5").Range(Cells(X, 1), Cells(X + 4, 2)) 

任何帮助,将不胜感激。

这是一个稍微更严格的做事方式,它首先检查值是否被发现。 您的错误是由于不完整的工作表引用 – 单元格引用是不合格的,如果macros运行时不同的工作表处于活动状态,将导致错误。 我上面的查询仍然适用。

 Dim r As Range, x As Long, Lookup_Range As Range Set r = Lookup_Range.Find("Set1", Range("A1"), xlValues, xlWhole, xlByColumns, xlNext) If Not r Is Nothing Then x = r.Row With Worksheets("Sheet5") Set Lookup_Range = .Range(.Cells(x, 1), .Cells(x + 4, 2)) End With End If 

你只在A列看? 那么这将工作:

 X = Range("A:A").Find("Set1", Range("A1"), xlValues, xlWhole, xlByColumns, xlNext).Row Set lookup_range = Worksheets("Sheet5").Range(Cells(X, 1), Cells(X + 4, 2))