Страницы: 1
RSS
Добавить список классификаторов в макрос, есть макрос, удалящий строки по условию
 
Как назначить список для переменной "классиф"?  код:
также пример в файле прилагаю
Код
Sub тест()
 Dim классиф
 Dim i As Long
    классиф = "09999/0" 'каким образом сюда ещё добавить ещё один классификатор, например 03022/0? 

    For i = Cells(Rows.count, 1).End(xlUp).row To 1 Step -1       
       If InStr(1, Cells(i, 1), классиф, vbTextCompare) > 0 Then        
      Rows(i).Delete
       End If
    Next' Application.ScreenUpdating = True
End Sub
Изменено: ttolu - 18.09.2019 13:40:04
 
Добрый день.
Можно как-то так:
Код
Sub тест()
 Dim классиф
 Dim i As Long
    классиф = "09999/0, 03022/0" 'добавляем самым простым образом
 
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
        'меняем местами в InSTR что с чем сравнивать, т.к. в ячейке будет значение меньшее, чем в переменной.
       If InStr(1, классиф, Cells(i, 1), vbTextCompare) > 0 Then
      Rows(i).Delete
       End If
    Next ' Application.ScreenUpdating = True
End Sub
Кому решение нужно - тот пример и рисует.
 
или в любом месте:
классиф =классиф  & ", " & "03022/0"
 
Пытливый, ничего не происходит при запуске вашим способом.
gena10111, не понял как структуру прописывать .. типо вот так зделал, как было написано:
Код
Sub tty()
 Dim классиф
 Dim i As Long
    классиф = "09999/0"
    классиф = классиф & ", " & "03022/0"
хотелось бы именно в этом макросе чтобы, в такой же структуре было, если возможно конечно.
 
А, понятно. Я только увидел ваш файл-пример в первом сообщении. Боюсь, что тогда надо макрос переделывать при добавлении кодов. Либо через вложенные циклы, либо через цикл по списку кодов и метод Find - FindNext.
Изменено: Пытливый - 18.09.2019 17:42:43
Кому решение нужно - тот пример и рисует.
 
Пытливый, если именно в таком виде как есть,- неззя, тогда не надо.. ладно уже.
главное, если искать не часть текста, а содержимое целой ячейку- в таком виде всё работает, а если часть текста- фигвам((
 
Код
Sub uuu1()
 Dim классиф
 Dim i As Long
 Dim n As Long
    классиф = Array("09999/0", "03022/0")
  For n = 0 To UBound(классиф)
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
       If InStr(1, Cells(i, 1), классиф(n), vbTextCompare) > 0 Then
      Rows(i).Delete
       End If
    Next
  Next
End Sub
 
Kuzmich, мечты сбываются не только газпрома, а у меня тоже (иногда))
-спасибо!)
 
Kuzmich, красава, использовал вот этот фрагмент в другой теме:
Код
' пропускаем нормальные фрагменты, и делаем список их:
             классиф = Array(" ШТ. ПО ", " ПАК. ПО ")
            For n = 0 To UBound(классиф)
          If InStr(1, Cells(i, 5), классиф(n), vbTextCompare) > 0 Then
        GoTo metka
      End If
Страницы: 1
Наверх