With Range("A2:A102")
iCount = Application.CountIf(.Cells, "*F*")
If iCount > 0 Then
ReDim iMassiv(1 To iCount)
For Each iCell In .Cells
If iCell.Value Like "*F*" Then
iItem = iItem + 1
iMassiv(iItem) = iCell.Value
End If
Next
End If
End With
Excel - выборка по определенной букве
Помогите написать макрос.
Необходимо из столбца "А" выбрать те слова в которых встречается буква "F" При чем не важно в каком месте этого слова, будь она первая, вторая и.т.д
А почему именно макрос ... ведь Вашу задачу можно решить с использованием стандартных средств, например фильтра или самых обычных формул.
Цитата:
Originally posted by pashulka
А почему именно макрос ... ведь Вашу задачу можно решить с использованием стандартных средств, например фильтра или самых обычных формул.
А почему именно макрос ... ведь Вашу задачу можно решить с использованием стандартных средств, например фильтра или самых обычных формул.
Просто здесь уже есть макрос который выполняет целую кучу действий и необходимо в него вставить вот эту процедуру, а иначе рассчет происходит не корректно.
Тогда используйте автофильтр, но только программно, или Вам нужен готовый код ...
см. здесь ...
Или использовать что-то вроде :
Предполагается, что "A2:A102" это заполненный диапазон в столбце "A", а ячейка "A1" содержит заголовок (шапку) таблицы.
Если вариант с использованием фильтров для Вас неприемлем, то Вы можете использовать поиск .Find/.FindNext, более подробно
Или использовать что-то вроде :
Код:
Предполагается, что "A2:A102" это заполненный диапазон в столбце "A", а ячейка "A1" содержит заголовок (шапку) таблицы.
Цитата:
Originally posted by pashulka
Если вариант с использованием фильтров для Вас неприемлем, то Вы можете использовать поиск .Find/.FindNext, более подробно см. здесь ...
Или использовать что-то вроде :
Предполагается, что "A2:A102" это заполненный диапазон в столбце "A", а ячейка "A1" содержит заголовок (шапку) таблицы.
Если вариант с использованием фильтров для Вас неприемлем, то Вы можете использовать поиск .Find/.FindNext, более подробно см. здесь ...
Или использовать что-то вроде :
Код:
With Range("A2:A102")
iCount = Application.CountIf(.Cells, "*F*")
If iCount > 0 Then
ReDim iMassiv(1 To iCount)
For Each iCell In .Cells
If iCell.Value Like "*F*" Then
iItem = iItem + 1
iMassiv(iItem) = iCell.Value
End If
Next
End If
End With
iCount = Application.CountIf(.Cells, "*F*")
If iCount > 0 Then
ReDim iMassiv(1 To iCount)
For Each iCell In .Cells
If iCell.Value Like "*F*" Then
iItem = iItem + 1
iMassiv(iItem) = iCell.Value
End If
Next
End If
End With
Предполагается, что "A2:A102" это заполненный диапазон в столбце "A", а ячейка "A1" содержит заголовок (шапку) таблицы.
Спасибо !!!
Тут еще один вопрос возник, а можно сделать так чтобы прога автоматически определяла диапазон заполненых ячеек и записывала куда-нибудь сколько совпадений по первому диапазону, сколько по второму и.т.д??? Просто бывает такая ситуация, что ячейки заполнены допустим А2:А15 после пустая, а потом А17:А45 и размер диапазона не постоянный.
см. здесь ...
P.S. Если возникнут проблемы, то посмотрите небольшой пример, воможно он окажется Вам полезен …
Можно, но ответ на этот вопрос уже опубликовал Dmitrii, более подробно
P.S. Если возникнут проблемы, то посмотрите небольшой пример, воможно он окажется Вам полезен …