#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 и ставит галочку над счетчиком в ячейке. Работает великолепно!