Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Удалить с таблички всё, кроме названия улицы.
 
Удалить с таблички АдресДоставкиИзСайта всё кроме названия улицы.
Есть такой код.Он выделяет по заданному слову.а нужно по множеству слов или фраз. типо Донецька ,Героїв Сталінграда и т.д
Код
Sub Del_SubStr()
Dim sSubStr As String 'искомое слово или фраза(может быть указанием на ячейку)
Dim lCol As Long 'номер столбца с просматриваемыми значениями
Dim lLastRow As Long, li As Long
Dim lMet As Long

sSubStr = InputBox("Укажите значение, которое необходимо найти в строке", "Запрос параметра", "";)
If sSubStr = "" Then lMet = 0 Else lMet = 1
lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "Запрос параметра", 1))
If lCol = 0 Then Exit Sub

lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count

Application.ScreenUpdating = 0
For li = lLastRow To 1 Step -1
If -(InStr(Cells(li, lCol), sSubStr) > 0) <> lMet Then Rows(li).Delete
Next li
Application.ScreenUpdating = 1
End Sub
 
У Вас всегда после названия улицы идет "д." ?
 
Скрытый текст
Изменено: trolololo - 18 Мар 2015 21:52:31
 
Афигеть... :)
Ответил на программерс.
 
я не понял)
 
Вы параллельно что ли вдвоём одну задачу делаете?
 
Короче, если я правильно понял логику Вашей базы, то у меня получился примерно такой макрос:
Код
Sub Улица()
Dim arr() As String
Dim S As String
Dim L As Integer
arr = Split("вул. просп. пер. бул.")
For I = 2 To Cells(Rows.Count, 2).End(xlUp).Row
S = Cells(I, 2).Value
L = InStr(S, "д.")
If L <> 0 Then
    S = Trim(Left(S, L - 1))
    For Each a In arr
      L = InStr(S, a)
      If L <> 0 Then
        S = Trim(Right(S, Len(S) - L + 1))
        Exit For
      End If
    Next a
    Cells(I, 4).Value = S
End If
Next I
End Sub

 
Цитата
Hugo написал: Вы параллельно что ли вдвоём одну задачу делаете?
нет это всё 1 я)просто всюду ищу ответ
 
1. Код следует оформлять тегом
2. Большие сообщения #3 прячьте под спойлер
3. Размещаете вопрос на нескольких форумах - ИНФОРМИРУЙТЕ об этом.
 
Ну почти. Не понял что за
, пров. Лабораторний д.26а кв.69
и конечно неподвластно
Склад №80,  Харківське шосе д.150/15 кв.
Код
Sub tt()
    Dim a, el, c As Range
    a = Array(" вул. ", " ул. ", " просп. ", " пер. ", " бул. ", " бульвар ", " наб. ", " д.")
    With ActiveSheet.UsedRange.Columns(2)
        For Each el In a
            .Replace What:=el, Replacement:="|", LookAt:=xlPart
        Next
        For Each c In .Cells
            If InStr(c, "|") Then a = Split(c, "|"): c = a(UBound(a) - 1)
        Next
    End With
End Sub
Изменено: Hugo - 18 Мар 2015 22:31:06
Страницы: 1
Читают тему (гостей: 1)