我正在尝试在VBA中使用Index + Match公式。对于数组,我想通过使用.Find找到他们的地址,然后保存他们的地址并在公式中使用它。
我在下面的代码中得到的错误是公式的“应用程序定义或对象定义的错误”。
有人能说清楚为什么会这样吗?此外,如果有人知道如何选择找到c的整个列而不是单元格,这将是一个额外的帮助!
Sub Find()
With Worksheets("User").Range("A1:BZ1")
Set c = .Find("userRole", LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
End If
End With
With Worksheets("User").Range("A1:BZ1")
Set c = .Find("name", LookIn:=xlValues)
If Not c Is Nothing Then
secondAddress = c.Address
End If
End With
Workbooks("Internal_Master").Sheets("Client").Range("C2").Formula = "=Index([" & firstAddress & "],Match(Client!B2,[" & secondAddress & "],0)"
有两张纸:“客户”和“用户” 这些数组来自“用户”表,该公式正在“客户”表中使用
答案 0 :(得分:0)
1.在公式之前写这个:
debug.print "=Index([" & firstAddress & "],Match(Client!B2,[" & secondAddress & "],0)"
2.看看即时窗口。
3.分析结果,并考虑在哪里可以改进它。
4.可能 - 删除" ["和"]"括号。