我正在尝试从工作簿中的另一个工作表中检索数据,但是当我执行代码时,单元格引用正在工作,但是它们是从当前工作表中检索,而不是从另一个工作表中检索。
我尝试使用工作表的名称以及“ Sheet7”(如下所示),一个只是从活动工作表中获取数据,另一个则产生运行时错误9。
While found = False
If Worksheets("Sheet7").Range("B" + CStr(i)).Value = cmbSA.Value Then
numBuilt = Worksheets("Sheet7").Range("C" + CStr(i + 1)).Value
found = True
Else
i = i + 1
End If
Wend
我希望if语句在i = 4时为true,但只有在i = 10(这是必需值)时才为true,仅从活动工作表中获取。
答案 0 :(得分:0)
我知道您已经问过VBA问题,并且出于其他原因可能希望在VBA中进行此操作,但是有一个相当简单的公式可以不用任何代码来获取它。
使用MATCH查找您的值,并使用OFFSET来获取它。您可以从另一张纸上进行此操作。如果您明确不想使用公式,我将不做进一步解释。
答案 1 :(得分:0)
在这里循环是过大的,可能导致问题。如果未找到cmbSA.value
怎么办?此外,While...Wend
也已弃用。
听起来您只需要Range.Find
。
例如:
Dim foundCell as Range
Set foundCell = Worksheets("Sheet7").Range("B:B").Find(What:=cmbSA.Value, LookIn:=xlValues, LookAt:=xlWhole)
If Not foundCell is Nothing Then
numBuilt = foundCell.Offset(1, 1).Value
End If