在公式中使用变量

问题描述 投票:0回答:1

我正在尝试在公式中使用变量,但我得到的结果是FALSE,它应该返回一个Lookup值,从表的底部开始向上。

Private Sub NewTaxCode()
Dim TaxCode2 As Long
Dim B As Range
Dim TaxCode3 As Range
Dim TaxCode4 As Range

Worksheets("P11Combined").Activate

Set B = Range("A:A")

Worksheets("E'ee Details").Range("U1").Value = "=Match(RC[-4],P11Combined!C[-18],0)"
TaxCode2 = Worksheets("E'ee Details").Range("U1").Value

Set TaxCode3 = Range("A:A").Find(What:="TAX:", After:=B(TaxCode2))

Set TaxCode4 = Range(TaxCode3.Address).End(xlDown).Offset(1, 2)

TaxCode5 = Range(TaxCode4.Address).FormulaR1C1 = "=LOOKUP(2,1/(R[-12]C:R[-1]C<>"" ""),(R[-12]C[-1]:R[-1]C[-1]))"

最后一行是我遇到问题的地方。该公式在电子表格中运行良好,但我不能让它在VBA中工作。

excel vba excel-vba
1个回答
0
投票

代码的最后一行是格式

variable = logical_expression

并且将变量(TaxCode5)设置为TrueFalse,具体取决于TaxCode4引用的单元格中的公式是否与代码中的公式相同。

它不会修改TaxCode4引用的单元格中的公式。

你似乎想要:

Private Sub NewTaxCode()
    Dim TaxCode2 As Long
    Dim B As Range
    Dim TaxCode3 As Range
    Dim TaxCode4 As Range
    Dim TaxCode5 As Variant

    Set B = Worksheets("P11Combined").Range("A:A")

    Worksheets("E'ee Details").Range("U1").FormulaR1C1 = "=Match(RC[-4],P11Combined!C[-18],0)"
    TaxCode2 = Worksheets("E'ee Details").Range("U1").Value

    Set TaxCode3 = B.Find(What:="TAX:", After:=B(TaxCode2))

    Set TaxCode4 = TaxCode3.End(xlDown).Offset(1, 2)

    TaxCode4.FormulaR1C1 = "=LOOKUP(2,1/(R[-12]C:R[-1]C<>"" ""),(R[-12]C[-1]:R[-1]C[-1]))"
    TaxCode5 = TaxCode4.Value
    '...
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.