Попытка скопировать значения в столбце на основе последней строки в другом столбце - PullRequest
0 голосов
/ 17 июня 2019

У меня есть лист Excel с настройкой из четырех столбцов, как показано ниже.

Excel Screen dump

Я пытаюсь скопировать содержимоеячеек от столбца B до столбца C, если есть активные строки в любых ячейках этих 4 столбцов.Под этим я подразумеваю включение значения a11.

Я нашел много способов скопировать текст, но все они останавливаются, если ячейка пуста.

Это должно работать в шаблоне Excel с помощью макроса автозапуска для заполнения формы.Я пробовал много способов, которые я нашел на разных сайтах в Интернете, но ничего не работает.Кажется, что все они останавливаются на первой пустой ячейке в любой строке ...

Sub Auto_Open()
    With Range("B1", Range("B1").End(xlDown))
        Sheets("Upload").Range("C" & Rows.Count).End(xlUp).Offset(0).Resize(.Count) = .Value
    End With
End Sub

Вывод моего последнего кода (размещенного здесь) заканчивается на первой пустой ячейке, и я не могу заставить ее продолжить ...

Есть предложения?

Заранее спасибо.

1 Ответ

0 голосов
/ 17 июня 2019

Это должно работать:

Эта функция находит последнюю использованную строку во всем листе.

Sub Auto_Open()

Sheets("Upload").Range("C1:C" & LastRow(ActiveSheet)).Value = Sheets("Upload").Range("B1:B" & LastRow(ActiveSheet)).Value

End Sub


Function LastRow(Sh As Worksheet)
    On Error Resume Next
    LastRow = Sh.Cells.Find(What:="*", _
                            After:=Sh.Range("A1"), _
                            Lookat:=xlPart, _
                            LookIn:=xlFormulas, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlPrevious, _
                            MatchCase:=False).Row
    On Error GoTo 0
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...