Excel VBA для определения конкретных диапазонов в больших наборах данных - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть электронная таблица, которая постоянно обновляется, и для отслеживания обновлений я хочу вставить формулу в столбец AL, который рисует число со страницы инструкции, и я хочу, чтобы эта формула была преобразована в значение, чтобыоно не меняется (каждый раз, когда лист обновляется, это число меняется).

Проблема в том, что я не знаю, как определить мой диапазон - мой код работает, и он вставляет данные, вставляет формулу и затем преобразует ее только в значение.Но он делает это для всего столбца, потому что он определен в AL1.Я хочу определить его для предыдущей последней использованной строки, а затем, после вставки новых данных, я хочу, чтобы она остановилась на последней использованной строке новых данных.Я не слишком уверен, имеет ли мое объяснение какой-либо смысл, поэтому дайте мне знать, если у вас есть какие-либо вопросы или идеи, как я могу это сделать!Спасибо :)

With ThisWorkbook
  With .Sheets("ABC")
    .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial
    lrFormula = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
    Set Period = .Range("AL1:AL" & lrPPV)
    Period.Formula = "=Instructions!$E$33"
    Period.Value = Period.Value
  End With
End With

1 Ответ

0 голосов
/ 17 декабря 2018

Попробуйте:

Dim Lastrow As Long

    With ThisWorkbook

        With .Sheets("ABC")

            Lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row 'Lastrow before paste
            .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial
            lrFormula = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
            Set Period = .Range("AL" & Lastrow & ":AL" & lrPPV)
            Period.Formula = "=Instructions!$E$33"
            Period.Value = Period.Value

        End With

    End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...