切割字符串Excel vba

时间:2014-03-18 05:52:46

标签: excel-vba vba excel

我有这些看起来像这样的字符串。

NAME,"SAM"
NAME,"ADAM"
NAME,"ALEXANDER"
NAME,"SARAH"

我只需要实际的名字。例如,第一行的“SAM”。如何剪切我不需要的其他部分?使用什么功能?提前谢谢!

2 个答案:

答案 0 :(得分:0)

试试这个 -

=IFERROR(RIGHT(E9, FIND(",", E9, 1)), E9)

其中E9是一个示例单元格。

基本上我们正在搜索逗号(,),然后在文本的右侧。

你在写VBA代码吗?

在这种情况下使用以下内容 -

splitString= Split(<cellValue>, ",")

这将尝试根据指定的分隔符拆分字符串并返回值数组。

编辑2:

Dim splitString() As String
splitString = Split(Range("F9").Value, ",")

If (UBound(splitString) > 0) Then
    Range("G9").Value = splitString(1)
End If

答案 1 :(得分:0)

尝试以下任何一项:

使用Split Function(评估是可选的):

Dim mystring

mystring = Split([Sheet1!B2], ",")
[Sheet1!C2] = mystring(UBound(mystring))

括号[]Evaluate Function的捷径 所以它也可以这样写:

mystring = Split(Evaluate("Sheet1!B2"), ",")
Evaluate("Sheet1!C2") = mystring(UBound(mystring))

使用Right FunctionInStr or InStrRevLen(评估是可选的):

[Sheet1!D2] = Right([Sheet1!B2], InStr([Sheet1!B2], ",") - Len([Sheet1!B1]))

Evaluate是可选的。您可以将其更改为传统Range object,例如Range("B2")
希望这有帮助。
哦,你问了语法,见下文:

Split(Expression As String,[Delimiter],[Limit As Long],[Compare As VbCompareMethod])
Len(Text)
Right(Text, [number of characters])
InStr([Start],[String1(where to search)], _
      [String2(what to search)],[Compare As VbCompareMethod])
Evaluate(Name)
Ubound(array) / Lbound(array)