После завершения «цикла» выберите первую ячейку в диапазоне.

После завершения «цикла» выберите первую ячейку в диапазоне.

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

В настоящее время он настроен следующим образом: циклически вычисляется количество секций, копируются и вставляются эти значения вЛист результатови выберите следующую пустую ячейку в столбце L.

Это работает отлично, пока кнопка не нажата несколько раз, потому что при многократном нажатии кнопки скопированные результаты будут добавлены под уже имеющимися результатами.

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

Это должно быть просто, но я не могу понять. Кроме того, желаемый диапазон был назван "ATPResults".

Sub Copy_ATP_Tables()

 Dim SectionATP As Long, NextRow As Long

  For SectionATP = 1 To 35 '36

    NextRow = Sheets("Results").Range("L" & Rows.Count).End(xlUp).Row + 1 'Next empty row

    Sheets("Acceptance Test Procedure").Range("APTSec" & SectionATP).Columns("A:H").Copy _
    Destination:=Sheets("Results").Range("L" & NextRow) 'SpecialCells(xlCellTypeVisible)

'        Range("FTPSec" & Section).Columns("G:H").SpecialCells(xlCellTypeVisible).Copy _
'            Destination:=Sheets("Results").Range("N" & NextRow)

  Next SectionATP

'    Sheets("Results").Range("ATPResults").Select
'    For SectionATP = 35 To 35

End Sub

решение1

Надеюсь, я понял ваш вопрос. Я изменил его так, чтобы он всегда начинался с L2:

Sub Copy_ATP_Tables()

 Dim SectionATP As Long, NextRow As Long
 NextRow = Sheets("Results").Range("L" & 2) 'This line defines where to start 

  For SectionATP = 1 To 35 '36

    Sheets("Acceptance Test Procedure").Range("APTSec" & SectionATP).Columns("A:H").Copy _
    Destination:=Sheets("Results").Range("L" & NextRow) 'SpecialCells(xlCellTypeVisible)

    NextRow = Sheets("Results").Range("L" & Rows.Count).End(xlUp).Row + 1 'Moved to the end of the loop

  Next SectionATP
End Sub 

Связанный контент