Как сделать цикл до последнего ряда? - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь выполнить цикл в моей электронной таблице, который будет проходить вниз по строкам, пока не достигнет последней строки таблицы.

У меня есть формула в ячейке P1, и я копирую ее в G1, и цикл работает бесконечно вниз до G200, G201 и т. Д. Как мне сделать так, чтобы она остановилась напоследняя строка?

Это код, который я уже пробовал.

Dim output As Worksheet
Dim Lastrow As Long
Dim i As Integer

i = 1
Lastrow = .Range("A" & .Rows.Count).End(xlUp).Row
Set output = ThisWorkbook.Worksheets("Output")
output.Range("P1").Value = "=SUM(Q1,R1)"

Do Until Lastrow = True
    output.Range("P1").Copy Destination:=output.Cells(i, 7)
    i = i + 1
Loop

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

Ответы [ 2 ]

4 голосов
/ 17 октября 2019

Не требуется петля:

Sub NU112()
    Dim output As Worksheet
    Set output = ThisWorkbook.Worksheets("Output")

    Dim Lastrow As Long
    Lastrow = output.Range("A" & output.Rows.Count).End(xlUp).Row

    output.Range("G1:G" & Lastrow).Formula = "=SUM(Q1,R1)"
End Sub
0 голосов
/ 17 октября 2019

Для циклов лучше работать для циклов через ячейки. Я положил все в блок с, чтобы вам не нужно постоянно уточнять диапазоны.

Dim output As Worksheet
Dim Lastrow As Long
Dim i As Integer

Set output = ThisWorkbook.Worksheets("Output")
with output
    Lastrow = .Range("A" & .Rows.Count).End(xlUp).Row
    output.Range("P1").formula = "=SUM(Q1,R1)"
    for i = 1 to lastrow
        .Cells(i, 7).value = .cells(1, 16).value
    next i
end with
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...