Найти последнюю строку после вставки формул в значения - PullRequest
0 голосов
/ 03 марта 2020

Простая версия моей ситуации - у меня есть Рабочая тетрадь с тремя листами. Лист1, содержащий данные. Sheet2, содержащий ссылки на Sheet1, например: "= if (Sheet1! A1 =" "," ", Sheet1! A1)". Таким образом, я не вижу 0, если ячейка в Sheet1 пуста.

Когда я изменяю Sheet2 на значения, выбирая все после Вставить как Значения (я использую макрос для этого, но результат тот же ) все выглядит идеально, но когда я пытаюсь найти последнюю последнюю строку с данными, она все равно находит последнюю строку, содержащую формулу, перед вставкой значений.

Я использую скрипт vba ниже, чтобы найти последнюю строку с данными.

Sub Range_End_Method_1()
'Finds the last non-blank cell in a single row or column
Dim lRow As Long
Dim lCol As Long
    'Find the last non-blank cell in column A(1)
    lRow = Cells(Rows.Count, 1).End(xlUp).Row
    'Find the last non-blank cell in row 1
    lCol = Cells(1, Columns.Count).End(xlToLeft).Column
    MsgBox "Last Row: " & lRow & vbNewLine & _
            "Last Column: " & lCol
End Sub

Загрузите файл отсюда: https://www.dropbox.com/s/nhgrmt942ahiu50/DEMO.xlsm?dl=0

Sheet2 по-прежнему содержит формулы, а Sheet3 является копией Sheet2, где формулы вставляются как значения.

Есть идеи, как найти последнюю строку, которая на самом деле содержит данные?

1 Ответ

1 голос
/ 03 марта 2020

Вместо копирования / вставки значений используйте перенос значений, например

newRange.Value = oldRange.Value

Это эффективно удалит все ячейки с пустой строкой.

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