Расширение формы рабочего листа через VBA без записи только значения

Моя проблема заключается в следующем: у меня есть шаблон, который я заполняю с помощью VBA. Я ввожу временные значения сотрудников, когда они приходят и уходят. В нижней части таблицы есть формула в шаблоне, которая суммирует отработанные часы.

Типичный набор выглядит так …

A1: 08:00 A2: 12:00 A3: 13:00 A4: 17:00 A5: =(A1-A2)+(A3-A4) 

Если сотрудник работал над дополнительным временным блоком, скажем, с 18:00 до 22:00, то мне нужно добавить его в шаблон. Я делаю это, вставляя две строки ниже A4 и копируя формирование из строк выше. Все это я делаю с VBA. Итак, рабочий лист теперь выглядит так:

 A1: 08:00 A2: 12:00 A3: 13:00 A4: 17:00 A5: 18:00 A6: 22:00 A7: =(A1-A2)+(A3-A4) 

Моя проблема в том, что мне нужно настроить формулу в A7, и она абсолютно НЕОБХОДИМАЯ ФОРМУЛА, потому что сотрудник должен иметь возможность вводить значения в предварительно заполненный шаблон после того, как я его создаю.

Я не понимаю, как это сделать.

Любые предложения приветствуются! Благодаря!

Поскольку ваши данные находятся в парах значений в одном столбце, вы можете просто создать правильную формулу и поместить ее в нижней части столбца:

 Sub FormulaMaker() Dim N As Long, sForm As String, sLittle As String N = Cells(Rows.Count, "A").End(xlUp).Row For i = 1 To N - 1 Step 2 sLittle = "(A" & i & "-A" & i + 1 & ")" If sForm = "" Then sForm = "=" & sLittle Else sForm = sForm & "+" & sLittle End If Next i Cells(N + 1, "A").Formula = sForm End Sub 

Также вы можете использовать (A2-A1), а не (A1-A2)

Interesting Posts

Код для обнаружения скрытых строк, их отображения и применения границы

Сравнение двух значений ячейки с диапазоном значений в Excel

Создание диаграммы по координатам вершин

Передача переменной из других модулей и ее размещение в формате

Результаты сравнения индекса в #NA только на некоторых ячейках

Excel: любая формула для расчета процентного роста с течением времени

Скомпилируйте ошибку, говоря «неправильное количество аргументов или недопустимое присвоение свойств»

Два цикла в одном коде

Скопируйте непустую ячейку в ячейку ниже, повторите для каждой пустой ячейки

Скопируйте несколько листов в другую книгу

Как избежать запятой и двойной кавычки в то же время для CSV-файла?

MAX значение даты в диапазоне с 2 условиями

VBA Excel: если оператор не работает

Минимальный счетчик Excel, необходимый для достижения общего количества последовательных ячеек

Как заставить VLOOKUP вернуть числовое значение 0 при ссылке на пустую ячейку

Давайте будем гением компьютера.