Страницы: 1
RSS
Удаление всех строк между двумя значениями в столбце
 
Доброго времени суток, и всех с прошедшими праздниками).
Пришел к вам с криком души и за помощью))

Существует выписка по счету, ее необходимо перебирать руками на предмет сопоставления расходов по номерам и лимитов, установленных в организации по каждому номеру. Также существует ряд номеров, на которые лимита нет и которые не нуждаются в анализе.

Соответственно нужно делать следующее:
Удалить выписки по ненужным номерам. Есть массив номеров, нужно проверить каждый и удалить все строки между совпавшим номером телефона и фразой. В нашем примере массив номеров будет состоять из ("375291112233", "375297778899"). Нужно удалить все строки между 375291112233 и фразой Итого начислений с учетом округлений и между номером 375297778899 и фразой Итого начислений с учетом округлений (Включая данные строки с условиями) и так далее. Номеров порядка 1000, в случае необходимости могу внести их руками в массив.

К сожалению, не умею писать красивых речей, просто скажу, что любой из данных пунктов существенно облегчит мне жизнь,  и я буду безмерно вам благодарен. Самостоятельно перебрал тонну макросов с различными удалениями, но так как с программированием я на "Вы", переделать что-то под себя у меня не получается, поэтому и пришел к вам.
Заранее благодарю)
 
Цитата
Есть массив номеров, нужно проверить каждый и удалить все строки между совпавшим номером телефона и фразой.
Номер один раз встречается в столбце В?
Цитата
Номеров порядка 1000, в случае необходимости могу внести их руками в массив.
Внесите несколько, как пример
Изменено: Kuzmich - 12.01.2021 15:15:51
 
Да, каждый номер встречается 1 раз.

Цитата
Kuzmich написал: Внесите несколько, как пример
Немного не понимаю вопрос, в условии я указал, что необходимо из четырех номеров в примере удалить два, 375291112233 и 375297778899. Уточните, пожалуйста, что от меня требуется?
 
А после удаления информации по номеру 375291112233 какие строки должны остаться? или вообще весь этот блок удаляем?
Абонентский номер
Тарифные планы
Интернет
Итого начислений
Итого начислений с учетом округлений
Весь этот блок с указанным вами номером под удаление? или какие-то строки из этого блока нужно будет оставить?
Изменено: New - 12.01.2021 15:26:48
 
Цитата
New написал:
Весь этот блок с указанным вами номером под удаление?
Да, весь блок между строкой с номером и "итого начислений с учетом округлений" необходимо удалить включая эти две строки
 
Цитата
что от меня требуется?
Номеров, как вы написали, будет порядка 1000. Где они будут прописаны?
Для одного номера
Код
Sub PoiskTelefon()
Dim Found_N As Range
Dim Found_Itogo As Range
Dim FAdr As String
  Set Found_N = Columns("B").Find("375291112233", , xlValues, xlWhole)
    If Not Found_N Is Nothing Then
        Set Found_Itogo = Cells(Found_N.Row, "A").End(xlDown)
        Rows(Found_N.Row & ":" & Found_Itogo.Row).Delete
    End If
End Sub
Изменено: Kuzmich - 12.01.2021 15:31:58
 
Цитата
Kuzmich написал: Где они будут прописаны?
В идеале было бы прописать их все, скажем, на третьем листе в столбце А. Об этом не подумал, так как удаляю руками.
 
Цитата
Kuzmich написал:
Для одного номера
Спасибо!
Может быть еще подскажете, если я захочу добавить остальные номера сюда, в код, в какую сторону копать?) Что необходимо будет добавить? Чтобы понимать, какую информацию гуглить/читать) Спасибо)
 
См. файл. Укажите весь перечень ваших номеров на листе "Удалить эти номера", удаление будет происходить с листа "Лист1", макрос запускается по Alt+F8
 
Цитата
на третьем листе в столбце А
Сделайте список номеров, а затем цикл по этим номерам
 
New, огромное спасибо!  
 
Цитата
Kuzmich написал:
Сделайте список номеров, а затем цикл по этим номерам
И вас благодарю) Почему-то в прошлом сообщении не процитировалось)
 
Список удаляемых номеров на Листе3
Макрос запускать при активном Лист1
Код
Sub PoiskTelefonAndDeleteRows()
Dim Found_N As Range
Dim i As Long
Dim iLR As Long
Dim Found_Itogo As Range
With Worksheets("Лист3")
 iLR = .Cells(.Rows.Count, "A").End(xlUp).Row
  For i = 1 To iLR
   Set Found_N = Columns("B").Find(.Cells(i, "A"), , xlValues, xlWhole)
    If Not Found_N Is Nothing Then
        Set Found_Itogo = Cells(Found_N.Row, "A").End(xlDown)
        Rows(Found_N.Row & ":" & Found_Itogo.Row).Delete
    End If
  Next
End With
End Sub
 
Спасибо за помощь!)
 
Alex -, на будущее - не копируйте просто так! Цитата - не бездумная копия.
Страницы: 1
Наверх