Excel:仅提取以特定字符开头的子字符串

时间:2015-06-23 13:11:56

标签: excel

我有一列单元格,其中包含长度不超过140个字符的可变文本。我想要做的是编写一个函数来解析这些字符串只用于以“@”开头的单词,并将它们组织在一个由空格分隔的单个相邻单元格中。

这些子串的长度和字符串中的位置不同。并且在单元格中可能有多个以“@”开头的子字符串。

我已经尝试了很多不同的方法。提前感谢您的建议!

这是一种似乎有效的方法,但可能不是“正确的”方式:

目标是解析包含推文的C列,用于所有“提及”(以@开头的字符串),并将它们放在D列的相邻单元格中。

我从C列中获取了所有内容并将其粘贴到新工作表中。然后我做了文本到列,以便将推文逐字逐句放入单元格。在这些单元格中,我使用了函数(拖出)= IF(ISNUMBER(FIND(“@”,B3)),CONCATENATE(B3,“”),“”),以便仅将twitter句柄分成下面的列。我认为如果有多个句柄要加入,就需要添加一个空格。

然后我使用了另一个嵌套的CONCATENATE函数= CONCATENATE(IF(B34 =“”,“”,B34),IF(B35 =“”,“”,B35)......,IF(B65 =“”,“ “,B65)将句柄(现在后跟空格)放在一个单元格中。必须以这种方式编写,作为空白单元格中CONCATENATE函数的#VALUE错误的解决方法。

然后我选择了整行,将其复制并转换为一列。然后选择了该列,仅将粘贴的值粘贴到D列中的原始工作表中。句柄都与相应的推文对齐。

我很想学会如何以正确的方式做到这一点。

1 个答案:

答案 0 :(得分:0)

Dim regEx  As Object
Dim strPattern As String: strPattern = "^@"
Set regEx = CreateObject("VBScript.RegExp")
regEx.Pattern = strPattern
If regEx.Test(valueOfCellToCheck) Then
    ' do your logic here
Else
   ' skip cell
End If