Я следующую задачу Excel:
Timeline - заполнить лист с недостающими датами между заданным интервалом
Я в настоящее время имеют это в Лист1 столбцах A, B, C:
Дата Время Worker
04/04/2016 4,5 Джон
05/04/2016 2 John
06/04/2016 6,5 Джон
07/04/2016 0 -
08/04/2016 0,5 Чарльз
08/04/2016 2 John
08/04/2016 0,5 Уильям
09/04/2016 0 -
10/04/2016 0 -
11/04/2016 9 John
11/04/2016 3.75 Уильям
у меня также есть в листе 3:
дата создания проекта в ячейке E1: 28/03/2016
Фактическое начало проекта в ячейке F1: 29/03/2016
дата, Сегодня В ячейке G1 (давайте рассмотрим сегодня дату, которую я покажу в следующем): 13/04/2016
То, что я хочу в sheet2:
Выберите самую раннюю дату между Созданием и фактическим началом проекта, который в данном случае является 28/03/2016
Затем добавьте пропущенные даты с 0 Временем и - работник до него достигает сегодняшней даты.
Он должен выглядеть следующим образом после того, как все сделано:
Дата Время Worker
28/03/2016 0 -
29/03/2016 0 -
30/03/2016 0 -
31/03/2016 0 -
01/04/2016 0 -
02/04/2016 0 -
03/04/2016 0 -
04/04/2016 4,5 Джон
05/04/2016 2 John
06/04/2016 6,5 John
07/04/2016 0 -
08/04/2016 0,5 Чарльз
08/04/2016 2 John
08/04/2016 0,5 Уильям
09/04/2016 0 -
10/04/2016 0 -
11/04/2016 9 John
11/04/2016 3.75 William
12/04/2016 0 -
13/04/2016 0 -
Это продолжение проблемы, которую я только что обнаружил сейчас:
Timeline - loop through all dates between first and last given and add date to column if not found Ищете решение макроса excel-vba, потому что я считаю, что это единственный способ сделать это.
Я новичок в VBA и застрял в этой проблеме, и вся помощь мне очень помогает!
Отредактировано, чтобы сказать следующее: ячейки, в которых даты создания, фактическое начало проекта и сегодня не имеют большого значения, могут быть на любом листе.Просто сказал, что для примера. Надеюсь, предоставленная ссылка поможет вам помочь!
Я получаю ошибку na ошибка 13 несоответствие типа, когда i = 2. Кроме того, где вы использовали «insertdate», который вы определили выше? Даты, которые мне нужны до 04/04/2016 и после 11/04/2016, по-прежнему отсутствуют. Цикл даже не начинается с сегодняшнего дня. Я считаю, что ответ не сильно отличается от кода @ScottCraner, но я не знаю, что изменить. –
Привет @carlos_cs, разница в том, что с изменением (прокомментировано) суб будет работать до даты «startDate». Я исправляю ошибку несоответствия и удаляю insertDate (я просто забыл в коде). Надеюсь помочь тебе сейчас. P.S .: Você é brasileiro? rs ... – Kellsens
Привет @ Kellsens sou português. Проблема с вашим кодом заключается в том, что цикл не находит в листе1 строки с сегодняшними и конечными датами. Код должен иметь шаг перед циклом: он должен найти, если дата начала и сегодня уже существует в листе 1, а если они не добавляются, то они добавляются сверху и снизу соответственно. Тогда я думаю, цикл должен работать. –