Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Поиск ячеек, содержащих определенное слова (VBA)
 
Здравствуйте, подскажите, пожалуйста, как правильно прописать код VBA.
Необходимо в диапазоне текстовых ячеек найти ячейки которые содержат слово, например "яблоко". Т.е. есть ячейки с текстом "зеленое яблоко", "красное яблоко", "яблоко" и тд, необходимо, что бы он нашел всех их.
 
и что дальше с этим делать будете?
как вариант таблицу загнать в массив и циклом перебирать .
 
Варианты: Воспользоваться методом Find для диапазона. Вопрос - что дальше с ними делать надо? :)

upd V, опередил с вопросом! :)
Кому решение нужно - тот пример и рисует.
 
Код
Sub test()
Dim i&, iCnt1&, iCnt2&, arr()
'1 вариант поиск на листе
For i = 1 To 100
    If UCase(Cells(i, 1).Value) Like UCase("яблоко") Then iCnt1 = iCnt1 + 1
Next i
'2 вариант поиск в массиве
arr = Range([a1], [a100]).Value
For i = 1 To 100
    If UCase(arr(i, 1)) Like UCase("яблоко") Then iCnt2 = iCnt2 + 1
Next i
'итог
MsgBox "На листе " & iCnt1 & "  ябл." & vbLf & "В массиве " & iCnt2 & " ябл."
End Sub
Изменено: Nordheim - 2 Фев 2018 11:13:37
"Все гениальное просто, а все простое гениально!!!"
 
Мой пример

Sub Кнопка2_Щелчок()
Dim i As Single, j As Single, s As Single
s = 0
For i = 2 To 6
For j = 1 To 6


If Cells(i, j) = "яблоко" Then
s = s + Cells(i, j + 1)
End If
Next j
Cells(i, 7) = s
s = 0
Next i

End Sub


итого
яблоко1арбуз25яблоко2526
апельсин2апельсин26арбуз140
зеленое яблоко 3яблоко24вишня8624
яблоко арбуз 4апельсин28зеленое яблоко920
красное яблоко5красное яблоко33апельсин320



В итоге считает только "яблоко", а зеленые и красные не учитывает. Необходимо, чтобы считал по всем ячейкам в которых содержится слово "яблоко"
Изменено: Tanya15 - 2 Фев 2018 12:10:19
 
Tanya15,
Код
If Cells(i, j) like "*яблоко*" Then 
 
Все так просто :(  Спасибо!
 
под ваш пример.
Код
Sub test()
Dim i&, iCnt1&, iCnt2&, arr(), ikey
'1 вариант
For Each ikey In ActiveSheet.UsedRange
    If UCase(ikey.Value) Like UCase("*яблоко*") Then iCnt1 = ikey(1, 2) + iCnt1
Next ikey
MsgBox "На листе " & iCnt1 & "  ябл."
End Sub
Изменено: Nordheim - 2 Фев 2018 12:20:58
"Все гениальное просто, а все простое гениально!!!"
Страницы: 1
Читают тему (гостей: 1)
Наверх