У меня есть входная текстовая строка в диапазоне (от A1 до AV1), каждая буква в одной ячейке. Строка
От A1 до AV1 выглядит следующим образом
| A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV
--------------------------------------------------------------------------------------------------------------------------
1 | M i c r o s o f t E x c e l i s a s p r e a d s h e e t d e v e l o p e d b y M i c r o s o f t
Я хочу иметь возможность искать подстроку и, если она найдена, выбрать диапазон, в котором присутствует подстрока.
Мой текущий код ниже работает, если строка ввода текста находится в той же строке, но я застрял в том, как это сделать
если строка находится в разных строках, например, если одна и та же строка входного текста находится в диапазоне A1: O4, и я хочу
искать подстроку "развитый", которая начинается в N2 и заканчивается в G3.
Sub SelectRangeofSubString()
Rng = Range("A1:AV1")
a = Range("A1").CurrentRegion
aa = WorksheetFunction.Transpose(WorksheetFunction.Transpose(a))
str1 = Join(aa, "")
StringToSearch = "developed"
StringLength = Len(StringToSearch)
Pos = InStr(str1, StringToSearch)
Range(Cells(1, Pos), Cells(1, Pos + StringLength - 1)).Select
End Sub
От A1 до O4 выглядит следующим образом
| A B C D E F G H I J K L M N O
---------------------------------------------------------------
1 | M i c r o s o f t E x c e l i
2 | s a s p r e a d s h e e t d e
3 | v e l o p e d b y M i c r o s
4 | o f t
Спасибо за любую помощь
Обновление
Спасибо обоим. Работает в обоих решениях. Моя последняя проблема, я пытался сделать то же самое, когда каждая ячейка содержит 2 буквы. Можете ли вы помочь мне выбрать диапазон и в этом случае?
Например, stringToSearch = "развитый" и данные из диапазона A1: H3
A B C D E F G H
----------------------------------
1 | Mi cr os of tE xc el is
2 | as pr ea ds he et de ve
3 | lo pe db yM ic ro so ft