【发布时间】:2019-06-04 16:32:12
【问题描述】:
我有一个范围内的输入文本字符串(从 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 = " Developed" 并且数据来自范围 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
【问题讨论】: