Страницы: 1
RSS
Как удалить все строчки, первая ячейка которых не начинается с цифры?
 
Здравствуйте!  
Есть следующая ситуация: необходимо проверить первую ячейку каждой строчки и если первый символ в ней цифра (0-9) то её, т.е. строчку, нужно оставить. Во всех остальных случая – удалить. Задача, как понимаю, не очень сложная, но я с языками программирования не дружу. Пример с простейшими пояснениями приложил.  
 
Заранее, спасибо за любую помощь.  
 
Пока просматривал форум и занимался «индийским» программированием (вырывал куски кода из уже готовых примеров), смог добиться только проверки первой ячейки на наличие цифры, но этот код не учитывает её, цифры, порядок. Код вот такой:  
 
Sub ertert()  
Dim rng As Range, r As Range, rDel As Range  
Set rng = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)  
With CreateObject("VBScript.RegExp")  
   .Pattern = "[0-9]"
   For Each r In rng  
       If .test® Then  
       Else  
       If rDel Is Nothing Then Set rDel = r Else Set rDel = Union(rDel, r)  
       End If  
   Next r  
End With  
If Not rDel Is Nothing Then rDel.EntireRow.Delete  
End Sub  
 
Если кто может, подскажите как поправить этот вариант, или предложите другой способ решения. Спасибо!
 
Option Explicit  
 
Private Sub NumerCell()  
Dim iLastRow As Long  
Dim i As Long  
Dim s As String  
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row  
For i = iLastRow To 1 Step -1  
   s = Mid(Cells(i, 1), 1, 1)  
       If Not IsNumeric(s) Then  
           Rows(i).EntireRow.Delete  
       End If  
Next i  
End Sub
 
или  
 
Sub ertert()  
Dim r As Range, rDel As Range  
With CreateObject("VBScript.RegExp")  
   .Pattern = "^[^0-9]"
   For Each r In Range("A1", Cells(Rows.Count, 1).End(xlUp))  
       If .test® Then  
           If Not rDel Is Nothing Then Set rDel = Union(rDel, r) Else Set rDel = r  
       End If  
   Next r  
End With  
If Not rDel Is Nothing Then rDel.EntireRow.Delete  
End Sub
 
А можно и так:  
=ЕСЛИ(ЕОШ(ЗНАЧЕН(ЛЕВСИМВ(A1)));"удалить";"оставить")
 
Как вариант, без макросов: в свободный столбец формулу  
 
=--ЛЕВСИМВ(A1)  
 
Выделить столбец, F5 - выделить - формулы, ошибки - правый клик на любой выделенной ячейке - удалить - строки.
 
Всем спасибо. Взял вариант от Kuzmich. Только удалил:    
Option Explicit  
Private  
Без них работать не захотел. Это не критично, что я их удалил?
 
Макрос надо поместить в редакторе на Лист1,  
у меня все работает  
Option Explicit - явное определение переменных,  
может у вас есть другие переменные?
Страницы: 1
Читают тему
Наверх