VBA:输入公式中的变量不起作用

时间:2017-04-28 10:33:13

标签: vba variables match formula

我正在尝试在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)"

有两张纸:“客户”和“用户” 这些数组来自“用户”表,该公式正在“客户”表中使用

1 个答案:

答案 0 :(得分:0)

1.在公式之前写这个:

  debug.print  "=Index([" & firstAddress & "],Match(Client!B2,[" & secondAddress & "],0)"

2.看看即时窗口。

3.分析结果,并考虑在哪里可以改进它。

4.可能 - 删除" ["和"]"括号。