Ссылка на номер ячейки в функции макроса - PullRequest
0 голосов
/ 21 декабря 2018

Создание макрофункции для ввода функции в несколько ячеек.Диапазон в функции зависит от значения другой ячейки.

Функция = 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 голосов
/ 21 декабря 2018

Просто объедините значение в и используйте 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...