Вставить строку, где отсутствует последовательное значение, Excel VBA

Я использую следующий код VBA, чтобы вставить пустую строку, где в excel отсутствует последовательное значение.

Sub test() Dim i As Long, x, r As Range For i = Range("b" & Rows.Count).End(xlUp).Row To 2 Step -1 x = Mid$(Cells(i, "b"), 2) - Mid$(Cells(i - 1, "b"), 2) If x > 1 Then Rows(i).Resize(x - 1).Insert Cells(i - 1, "b").AutoFill Cells(i - 1, "b").Resize(x), 2 End If Next 

Это отлично работает, если последнее значение отсутствует.
Например, я заполняю пробелы для групп по 5.
Если отсутствуют средние числа:
1
2
4
5
Код вставляет пустую строку для отсутствующего значения:
1
2

4
5
Однако, если последнее значение, 5, отсутствует, строка не будет вставлена.
Так:
1
2
4
становится:
1
2

4
Есть ли способ установить максимум, чтобы гарантировать, что окончательное значение будет признано отсутствующим?

Попробуй это…

 Sub test() Dim i As Long, x, r As Range, lMax As Long, lRw As Long lRw = Range("b" & Rows.Count).End(xlUp).Row + 1 lMax = InputBox("Enter Maximum Value", "Maximum Input Req.", Application.Max(Range("B2:B" & lRw))) For i = lRw To 2 Step -1 If i = lRw Then x = lMax - Mid$(Cells(i - 1, "b"), 2) If x > 1 Then Cells(i - 1, "b").AutoFill Cells(i - 1, "b").Resize(x + 1), 2 End If Else x = Mid$(Cells(i, "b"), 2) - Mid$(Cells(i - 1, "b"), 2) If x > 1 Then Rows(i).Resize(x - 1).Insert Cells(i - 1, "b").AutoFill Cells(i - 1, "b").Resize(x), 2 End If End If Next End Sub 

Пересмотренный код

 Sub test() Dim i As Long, x, r As Range, lMax As Long, lRw As Long lRw = Range("b" & Rows.Count).End(xlUp).Row + 1 lMax = InputBox("Enter Maximum Value", "Maximum Input Req.", Application.Max(Range("B2:B" & lRw))) For i = lRw To 2 Step -1 If i = lRw Then x = lMax - Cells(i - 1, "b").Value If x > 1 Then Cells(i - 1, "b").AutoFill Cells(i - 1, "b").Resize(x + 1), 2 End If Else x = Cells(i, "b").Value - Cells(i - 1, "b").Value If x > 1 Then Rows(i).Resize(x - 1).Insert Cells(i - 1, "b").AutoFill Cells(i - 1, "b").Resize(x), 2 End If End If Next End Sub 

Этот ответ был дан мне на другом форуме:

http://www.ozgrid.com/forum/showthread.php?t=200184&goto=newpost **

 Sub Reply() i = 1 Do While Cells(i, 2) <> "" j = Cells(i + 1, 2).Value - Cells(i, 2).Value - 1 If j < 0 Then j = 8 - Cells(i, 2).Value + Cells(i + 1, 2).Value For k = 1 To j Rows(i + k).EntireRow.Insert Next ki = i + k Loop End Sub 
  • Установите тип данных, например номер, текст и дату в столбце Excel, используя Microsoft.Office.Interop.Excel в c #
  • Почему идентификатор рабочего листа изменяется после повторного открытия документа (API-интерфейс Excel javascript)?
  • Поддержка языка Unicode в редакторе VBA
  • Перетаскивание формулы в Excel при повторном открытии файла
  • Выполнять функцию диапазона (например, сумму, среднюю, среднюю) на основе условия
  • Импортировать в базу данных sql из excel, где данные горизонтальны
  • Напишите макрос в VBA - преуспеть ПОСЛЕ того, как пользователь закрыл Excel
  • Макрос Excel работает либо с 2007 OR 2010
  • Проверка значения Variant «Nothing»
  • Попытка использования AppleScript для преобразования .xls и .xlsx в .txt (вкладка с разделителями), требуется фиксация
  • Как связать два столбца в Microsoft excel
  • Interesting Posts

    Как объединить ячейку (строка мудрый) в excel, пока не будет найдено значение?

    Программа для HID USB Scale для передачи веса в MS Excel

    Excel Vlookup перестает работать более двух строк

    Использование динамических полей / значений в SUMIFS

    Флажок контроля формы для копирования и вставки текста с другого листа

    Python – Прочтите последний добавленный или измененный файл excel

    Получение информации из файла Excel, а затем импорт в CSS

    Сохранение имен пустых столбцов как таковых при чтении данных листа excel

    Использование листа excel в качестве базы данных с java

    Создание PDF из базы данных и изображений в папках

    Изменение цвета определенных символов в ячейке

    Классификация банковских транзакций в Excel

    Perforce Diff Excel файлы с SSCL

    Отформатируйте ячейку как произвольную валюту независимо от языка, используя VBA

    Как открыть файл с датой и временем форматирования в excel vba

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