У меня есть скрипт, который циклически проходит по разделам на одном листе (Процедура функционального теста) и вставляет эти значения на другой лист (Полученные результаты) в ячейке 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