Диапазон Автозаполнение одной строки вниз только с использованием переменной предпочтительно - PullRequest
0 голосов
/ 21 января 2020

Я бы хотел выбрать последнюю строку только от B до Z (это единственная строка, в которой есть формулы.) Этот диапазон должен автоматически заполнять только одну строку вниз и устанавливать только значения второй последней строки (то есть удалять формулы) , Поэтому в последней строке всегда должны быть формулы.

набор данных, который выглядит следующим образом:

    A B C ..... Z
1   1 2 2 ......26
2   1 2 2 ......26
3   1 2 2 ......26
4   1 2 2 ......26
5   1 2 2 ......26

Поэтому код должен выбрать из B5: Z5 и автоматически заполнить одну строку.

Я попробовал следующий код, и он дает мне ошибку во время выполнения.

Sub autofilllastrow()

Dim Lastrow As Integer
Dim Lastrange As Range


Lastrow = ActiveWorkbook.Worksheets("sheet1").Cells(Rows.Count, 2).End(xlUp).Row

Range("B" & Lastrow, "Z" & Lastrow).Select

Lastrange.AutoFill Destination:=Range("B" & Lastrow + 1, "Z" & Lastrow + 1)


End Sub

Как правильно определить часть назначения и задать только значения для второй последней строки?

1 Ответ

1 голос
/ 21 января 2020
Sub autofilllastrow()

Dim lr As Long

With ThisWorkbook.Worksheets("Sheet1")
    lr = .Cells(.Rows.Count, 2).End(xlUp).Row
    .Range(.Cells(lr + 1, 2), .Cells(lr + 1, 26)).FillDown
    .Range(.Cells(lr, 2), .Cells(lr, 26)).Value = .Range(.Cells(lr, 2), .Cells(lr, 26)).Value
End With

End Sub
  • Без использования .Select
  • С Long типом данных вместо Integer
  • FillDown вместо AutoFill

Или, если вы заинтересованы в установке переменной Range:

Sub autofilllastrow()

Dim lr As Long, rng As Range

With ThisWorkbook.Worksheets("Sheet1")
    lr = .Cells(.Rows.Count, 2).End(xlUp).Row
    Set rng = .Range(.Cells(lr, 2), .Cells(lr, 26))
    rng.Offset(1).FillDown
    rng.Value = rng.Value
End With

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