Excel — VB, копирование содержимого из одной строки и добавление этой строки в нижней части предыдущих добавленных строк

#excel #vba

#excel #vba

Вопрос:

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

Чего я пытаюсь достичь:

ЭТАЛОННОЕ ИЗОБРАЖЕНИЕ

Мне нужно скопировать содержимое строки (21) и добавить их ПОСЛЕ самой строки (предыдущая 1), сохраняя при этом последовательные формулы, так что WP # увеличивается на 1. Мне нужно, чтобы эта вновь сгенерированная строка помещалась перед текущей строкой 24 (но, очевидно, что строка 24 увеличит количество строк, когда пользователь нажмет «Добавить путевую точку»), поскольку я буду использовать эту строку для суммирования итогов формул, вычисленных в предыдущих строках над ней.

Я надеюсь, что это имеет смысл, поскольку я просто запутался, когда писал это!!

В контексте пользователь хочет вставить НАЗВАНИЕ WP, долготу и широту, полосу движения, расстояние, DTG и время рейса — все это вычисления с использованием данных предыдущих строк.

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

** РЕДАКТИРОВАТЬ Ранее я просто использовал макрос record, и он выдавал следующий код:

 Sub NewWayPoint()
'
' NewWayPoint Macro
' Create new Waypoint Row
'

'
Rows("22:22").Select
Selection.Copy
Rows("23:23").Select
Selection.Insert Shift:=xlDown
End Sub
  

Приветствия,
Брэд

Комментарии:

1. Пожалуйста, покажите нам код, который вы пробовали

2. измените shift с xldown на xlup

3. Нет, это не работает так, как я собираюсь заставить это работать.. Поскольку я новичок в программировании, единственное, что я могу придумать, это создать переменную, значение которой увеличивается на 1 каждый раз, когда я нажимаю «Добавить путевую точку», а затем основываю свою нумерацию и формулу на значении внутри переменной :

Ответ №1:

Мне удалось выяснить это, используя ячейку в качестве счетчика:

 Sub AddWPMacros()
Click_Count_Add
NewWayPoint
End Sub


Sub Click_Count_Add()
Sheets("Passage Plan").RANGE("V6").Value = Sheets("Passage Plan").RANGE("V6").Value   1
End Sub


Sub NewWayPoint()

Dim Copyrange As String
Dim PasteRange As String

Let Copyrange = RANGE("V6:V6").Cells
Let PasteRange = Copyrange   1

Rows(Copyrange).Select
Selection.Copy
Rows(PasteRange).Select
Selection.Insert Shift:=xlDown

End Sub
  

Где кнопка Добавить путевую точку активирует AddWPMacros и ставит галочку над счетчиком в ячейке. Работает великолепно!

введите описание изображения здесь