Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Найти строку по части текста в ячейке - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Найти строку по части текста в ячейке
Паштет Дата: Вторник, 20.08.2024, 13:01 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
Есть массив из двух столбцов А и B. В столбце А написан текст типа "яблоки зеленые", "зеленые яблоки", "перец красный" и тп. Необходимо по значению переменной produkt, которая может иметь значение условно просто "яблоки", "перец" и тп., найти столбце А соответствующую строку (не обращая внимание на цвета фруктов) и очистить данные в ячейке в столбце B той же строки.
 
Ответить
СообщениеДобрый день!
Есть массив из двух столбцов А и B. В столбце А написан текст типа "яблоки зеленые", "зеленые яблоки", "перец красный" и тп. Необходимо по значению переменной produkt, которая может иметь значение условно просто "яблоки", "перец" и тп., найти столбце А соответствующую строку (не обращая внимание на цвета фруктов) и очистить данные в ячейке в столбце B той же строки.

Автор - Паштет
Дата добавления - 20.08.2024 в 13:01
i691198 Дата: Вторник, 20.08.2024, 13:41 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 337
Репутация: 108 ±
Замечаний: 0% ±

Паштет, Примерчик бы не помешал. А без него просто советы - пройти циклом по столбцу, использовать логический оператор "Like" или текстовую функцию "Instr". При нахождении нужных значений очищать данные строки используя методы "Clearcontents", Entirerow, "Resize" и т.п.
 
Ответить
СообщениеПаштет, Примерчик бы не помешал. А без него просто советы - пройти циклом по столбцу, использовать логический оператор "Like" или текстовую функцию "Instr". При нахождении нужных значений очищать данные строки используя методы "Clearcontents", Entirerow, "Resize" и т.п.

Автор - i691198
Дата добавления - 20.08.2024 в 13:41
jun Дата: Вторник, 20.08.2024, 13:59 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 43 ±
Замечаний: 0% ±

Паштет, добрый день!
Макрос во вложении. Обязательно нужно выделять не менее 1 столбца, иначе макрос не будет работать.
Выбираем столбец A1:B3, вводим критерий для поиска == яблоки. Результат работы - удаление данных в столбце B, в строке, столбца А которой было найдено совпадение.
Код:
[vba]
Код
Sub replace_substr()
Dim arr As Variant, i As Long, pattern As String

arr = Application.InputBox("выберите диапазон для замены(например А1:B10)", Type:=8) ' заносим диапазон в массив (Type:=8 означает объект-диапазон)

With CreateObject("VBScript.Regexp") ' объект-регулярные выражения
    
    .Global = False: .MultiLine = False: .IgnoreCase = False
    .pattern = Application.InputBox("введите слово для поиска и замены", Type:=2) ' спрашиваем строку для поиска в столбце A (Type:=2 означает объект-строку)
    
    For i = LBound(arr, 1) To UBound(arr, 1) ' проходим циклом по массиву и если совпадение надено, то
        If .test(arr(i, 1)) Then ActiveSheet.Cells(i, 2).ClearContents ' очищаем ячейку в столбце B
    Next i
    
End With
End Sub
[/vba]
К сообщению приложен файл: zamenit_po_podstroke.xlsb (15.9 Kb)


Сообщение отредактировал jun - Вторник, 20.08.2024, 14:12
 
Ответить
СообщениеПаштет, добрый день!
Макрос во вложении. Обязательно нужно выделять не менее 1 столбца, иначе макрос не будет работать.
Выбираем столбец A1:B3, вводим критерий для поиска == яблоки. Результат работы - удаление данных в столбце B, в строке, столбца А которой было найдено совпадение.
Код:
[vba]
Код
Sub replace_substr()
Dim arr As Variant, i As Long, pattern As String

arr = Application.InputBox("выберите диапазон для замены(например А1:B10)", Type:=8) ' заносим диапазон в массив (Type:=8 означает объект-диапазон)

With CreateObject("VBScript.Regexp") ' объект-регулярные выражения
    
    .Global = False: .MultiLine = False: .IgnoreCase = False
    .pattern = Application.InputBox("введите слово для поиска и замены", Type:=2) ' спрашиваем строку для поиска в столбце A (Type:=2 означает объект-строку)
    
    For i = LBound(arr, 1) To UBound(arr, 1) ' проходим циклом по массиву и если совпадение надено, то
        If .test(arr(i, 1)) Then ActiveSheet.Cells(i, 2).ClearContents ' очищаем ячейку в столбце B
    Next i
    
End With
End Sub
[/vba]

Автор - jun
Дата добавления - 20.08.2024 в 13:59
Паштет Дата: Вторник, 20.08.2024, 14:34 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
А без него просто советы - пройти циклом по столбцу, использовать логический оператор "Like" или текстовую функцию "Instr".

Вот на этом месте, я затупил. Спасибо за подсказку.

[vba]
Код
For s = 2 To iLastRow
If Cells(s, 1) Like "*яблоки*" Then Cells(s, 2).Clear
Next s
[/vba]
 
Ответить
Сообщение
А без него просто советы - пройти циклом по столбцу, использовать логический оператор "Like" или текстовую функцию "Instr".

Вот на этом месте, я затупил. Спасибо за подсказку.

[vba]
Код
For s = 2 To iLastRow
If Cells(s, 1) Like "*яблоки*" Then Cells(s, 2).Clear
Next s
[/vba]

Автор - Паштет
Дата добавления - 20.08.2024 в 14:34
Паштет Дата: Вторник, 20.08.2024, 14:36 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
jun, как все сложно. Спасибо, приму к сведению.
 
Ответить
Сообщениеjun, как все сложно. Спасибо, приму к сведению.

Автор - Паштет
Дата добавления - 20.08.2024 в 14:36
i691198 Дата: Вторник, 20.08.2024, 14:49 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 337
Репутация: 108 ±
Замечаний: 0% ±

Тот же результат с функцией "Instr"[vba]
Код
If InStr(Cells(s, 1), "яблоки") Then Cells(s, 2).Clear
[/vba] Нужно учитывать, что метод "Clear" полностью очистит ячейку, включая форматирование. Если нужно удалить только значения, лучше использовать метод "ClearContents".
 
Ответить
СообщениеТот же результат с функцией "Instr"[vba]
Код
If InStr(Cells(s, 1), "яблоки") Then Cells(s, 2).Clear
[/vba] Нужно учитывать, что метод "Clear" полностью очистит ячейку, включая форматирование. Если нужно удалить только значения, лучше использовать метод "ClearContents".

Автор - i691198
Дата добавления - 20.08.2024 в 14:49
Паштет Дата: Вторник, 20.08.2024, 15:20 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
У меня по факту ячейка невидимая, чисто техническая без формата. Но все равно спасибо!
 
Ответить
СообщениеУ меня по факту ячейка невидимая, чисто техническая без формата. Но все равно спасибо!

Автор - Паштет
Дата добавления - 20.08.2024 в 15:20
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!