我是VBA新手,我有一个字符串 I_HEAD_FOR 我想提取在VBA中以特殊字符'_'(Underscore)开始和结束的子字符串。 我需要能完成上述任务的代码片段,能否请你帮忙 在这种情况下,代码应该提取子字符串 HEAD
这个想法来自: I_HEAD_FOR
得到结果: HEAD
答案 0 :(得分:2)
怎么样:
Public Function UnderScore(s As String) As String
UnderScore = Split(s, "_")(1)
End Function
答案 1 :(得分:2)
如果您想使用Excel而不使用VBA,这就是您应该考虑制作公式的方式:
_
标志?_
标志吗?公式SEARCH
和MID
非常强大。 SEARCH
公式具有可选值,说明您应该从哪里开始搜索(请参阅第二个公式)。因此,我们将+1
添加到第一个找到的值。在第二个公式中,添加了-1
,因为我们不想要_
的位置,而是前一个位置。
文字中的公式:
=SEARCH("_",A1,1)
=SEARCH("_",A1,SEARCH("_",A1,1)+1)-1
=MID(A1,B1+1,B2-B1)
=MID(A1,SEARCH("_",A1,1)+1,SEARCH("_",A1,SEARCH("_",A1,1)+1)-1-SEARCH("_",A1,1))