Страницы: 1
RSS
Добавление недостающих строк с заполнением порядкового номера
 
Добрый день.
Необходима помощь в написание макроса.
Суть:есть список с порядковыми номерами но в списке имеется пропуски необходимо добавить строку сохранением порядкового номера.
Пример:
Есть: 1 2 5 8 10 19
Необходимо: 1 2 3 4 5 6 7 8 9
Заранее спасибо!
 
У Вас в исходных данных в строках 17 и 18 одинаковые значения (27) - это портит всю картину )
См. вариант, но я удалил эту одну "лишнюю" строку.
 
значение 27 повторяется по той причине что изначально данный файл выглядит как в присланном ниже примере . Это абонентская База . В ней пропущены квартиры клиентов . Требуеться на данный момент раскидать в почтовые ящики клиентам которых нет . Для чего мне и требуется добавить пропущенные строки что бы в дальнейшем по фильтру выбрать пустые .  
 
Цитата
Iryoku написал:
мне и требуется добавить пропущенные строки что бы в дальнейшем по фильтру выбрать пустые .
Откуда возьмутся пустые, если после работы макроса они все стали пронумерованы.
Вы так и не ответили - правильно работает мой макрос или нет?
 
В Том файле который я изначально направил, да работает макрос замечательно .
Только применить его к абонентской базе не могу, в Примере 2 он не работает (  
 
Так Вы даже не пытались - в файле нет макроса )
 
При добавлении данной Формулы Пишет ошибку
Run-time error 13
Type mismatch
Изменено: Iryoku - 07.04.2017 12:02:37
 
Мы никогда не узнаем, пропущены ли строки, если это 80-квартирный дом.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Цитата
Iryoku написал:
При добавлении данной Формулы Пишет ошибку
Никакой формулы в моём файле нет ))
Iryoku, давайте определимся, что делать с квартирами-двойниками? Это квартиры 4 и 27.
 
Цитата
Юрий М написал: давайте определимся, что делать с квартирами-двойниками? Это квартиры 4 и 27.
Они должны остаться . При этом должна добавиться пропущенная 5 квартира и следом 28.
 
Тогда пробуем так:
Код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub Macro1()
Dim LastRow As Long, i As Long, x As Long
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    For i = LastRow To 4 Step -1
        If Cells(i, 5) - Cells(i - 1, 5) <> 0 Then
            If Cells(i, 5) - Cells(i - 1, 5) <> 1 Then
                x = Cells(i, 5) - Cells(i - 1, 5) - 1
                Rows(i).Resize(x).Insert
            End If
        End If
    Next
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 4 To LastRow
        If Cells(i, 5) = "" Then Cells(i, 5) = Cells(i - 1, 5) + 1
    Next
End Sub
 
Выдаёт ошибку в
Код
1
Rows(i).Resize(x).Insert

Цитата
run time error 1004
aplication - definned or object-deffined errot
 
У меня (на Вашем пример) не выдаёт.
 
Я очень сильно извиняюсь , так как с работой макросов в EXCEL никогда не сталкивался (
Вол к какому файлу я пытаюсь применить , ссылка на гугл диск так как сюда не позволяет залить 9 МБ
https://drive.google.com/file/d/0B64gcuW4qErUMFdILWZSUEpHakU/view?usp=drivesdk
 
Я не буду качать 9М. В примере из #3 макрос работает корректно?
 
работает корректно только на тот файл и ищет пропуски он с 3 строки до 80 , к этому файлу в котором 158000 строк он не применяется . Так как фильтруешь первый адрес который начинается с 3 строки он корректно находить , ставишь  второй адрес который начинается с 83 строки , он выдаёт ошибку .
Очень прошу помочь , 3 день сижу ничего не могу сделать ( а задача до конца дня стоит по работе (((  
 
Цитата
Iryoku написал:
ищет пропуски он с 3 строки до 80
Не до 80-ой, а до ПОСЛЕДНЕЙ.
Покажите пример строк на 100, раз проблема после 83 строки. И не понял вот это:
Цитата
Iryoku написал:
Так как фильтруешь первый адрес
Зачем что-то "фильтровать"?
 
В файле в котором я скинул ссылкой более 1000 адресов , в которых есть не подключенные абоненты .
В данном файле требуется начать поиск пропущенных квартир с 3 строки и до 158000 строки .
Вот урезанный файл с 2000 строк ,

Файл см. ниже
 
В файле ОПЯТЬ нет макроса. Замените файл.
 
Вроде сохранил с макросом .
 
1. У Вас файле есть пустые ячейки, где должны быть номера квартир - это плохо, так как нет понимания, что за номера там должны быть.
2. Номера квартир повторяются многократно, так как разные дома.
Вариант: разбивайте таблицы по номерам домов: каждый дом отдельная таблица.
Страницы: 1
Читают тему
Loading...