Итак, у меня есть книга с 18 столбцами дат с точками данных и примерно 3 тыс. Строк. Я пытаюсь убедиться, что все строки имеют одинаковые даты. Если дата отсутствует, я хочу добавить новую строку с отсутствующей датой и # N/A рядом с ней. Некоторые столбцы пропустили несколько дней по сравнению с предыдущими столбцами.Получение Excel для вставки новой строки для отсутствующих дат для нескольких столбцов
Я искал, и я думаю, что нашел макрос, который может работать, но я не очень хорошо разбираюсь в VBA, поэтому я не уверен, как настроить его, чтобы он работал для нескольких столбцов:
Sub insertMissingDate()
Dim wks As Worksheet
Set wks = Worksheets("Sheet1")
Dim lastRow As Long
lastRow = wks.Range("C2").End(xlDown).Row
'Work bottom up since we are inserting new rows
For i = lastRow To 3 Step -1
curcell = wks.Cells(i, 3).Value
prevcell = wks.Cells(i - 1, 3).Value
'Using a loop here allows us to bridge a gap of multiple missing dates
Do Until curcell - 1 = prevcell Or curcell = prevcell
'Insert new row
wks.Rows(i).Insert xlShiftDown
'Insert missing date into new row
curcell = wks.Cells(i + 1, 3) - 1
wks.Cells(i, 3).Value = curcell
Loop
Next i
End Sub
EDIT: Я приложил изображения, чтобы сделать его проще!
Это показывает проблему, где даты рассогласованы
Это показывает фиксированную строку - с клетками, смещенная вниз
В идеале, я хотел бы быть чтобы найти способ найти все отсутствующие даты и вставить строку, подобную этой, без необходимости делать это вручную.
Вы можете редактировать включить скриншот ваших данных - возможно, показывая примеры того, что вы есть и что вы хотите после того, как код завершения – dbmitch
Спасибо за предложения! Просто добавлены скриншоты, чтобы сделать его проще. – Nikitau
Хорошо - это все еще немного сложно понять, о чем вы говорите, из-за того, что вам нужно перебрасывать назад и вперед между ссылками, но я думаю, что сейчас понимаю. Вы не хотите, чтобы новая строка была вставлена - вы хотите переместить данные в два столбца вниз - и замените ячейки в двух столбцах текущей строки совпадающей датой и #NA. – dbmitch