在宏上的函数中引用单元格的编号

时间:2018-12-21 01:58:38

标签: excel vba excel-formula

创建宏函数以在多个单元格上输入函数。 函数中的范围取决于另一个单元格的值。

函数为= INDEX($ B $ 3:$ B $ ,RANK(C5,$ C $ 3:$ C $ ,1))

三个*代表我必须在其中输入单元格G2的值,当前,G2值为12,因此该函数应读取             = INDEX($ B $ 3:$ B $ 12,RANK(C5,$ C $ 3:$ C $ 12,1)) G2中的函数是= LOOKUP(2,1 /(B:B <>“”),ROW(B:B))

我尝试使用Activecell.Value和Activecell.formular1c1 但到目前为止没有运气。

我尝试了以下代码,但它实际上不是一个函数。

Range("D3").Select
    ActiveCell.Value = "=INDEX($B$3:B$"
    ActiveCell.Value = ActiveCell.Value & R2C7
    ActiveCell.Value = ActiveCell.Value & "C5,RANK(C5,$C$3:$C$"
    ActiveCell.Value = ActiveCell.Value & R2C7
    ActiveCell.Value = ActiveCell.Value & ",1))"

1 个答案:

答案 0 :(得分:0)

只需连接其中的值,然后使用Range.Formula

类似这样的东西:

Sub Test()
    Dim x
    x = Range("G2").Value
    Range("D3").Formula = "=INDEX($B$3:$B$" & x & ",RANK(C5,$C$3:$C$" & x & ",1))"
End Sub

如果您只是在寻找最后一行,那么也许:

Sub Test2()
    Dim lastRow As Long
    With ActiveSheet
        lastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
    End With

    Range("D3").Formula = "=INDEX($B$3:$B$" & lastRow & ",RANK(C5,$C$3:$C$" & lastRow & ",1))"
End Sub