如何提取单元格的第一个单词并复制到另一个列

时间:2015-08-07 16:29:35

标签: excel vba

我无法提取文本的第一个单词并将其复制到新单元格中。这就是我到目前为止所拥有的。任何帮助将不胜感激。

Private Sub CommandButton1_Click()

Dim i As Integer
Dim str As String
Dim lonstr As String

i = 1

For i = 1 To 500

str = Worksheets("SR060-SR070(2)").Cells(i + 1, "D").Text
longstr = GETFIRSTWORD(str)

Worksheets("SR060-SR070(2)").Cells(i + 1, "U").Value = longstr

Next i 'goes to next row

End Sub


Function GETFIRSTWORD(Text As String, Optional Separator As Variant)

Dim firstword As String

If IsMissing(Separator) Then
 Separator = " "
 End If


firstword = Left(Text, InStr(1, Text, Separator, vbTextCompare))


GETFIRSTWORD = Replace(firstword, Separator, "")

End Function

2 个答案:

答案 0 :(得分:0)

类似的东西:

Private Sub CommandButton1_Click()

    Dim i As Long

    For i = 1 To 500

        With Worksheets("SR060-SR070(2)")
            .Cells(i + 1, "U").Value = GetFirstWord(.Cells(i + 1, "D").Text)
        End With

    Next i 'goes to next row

End Sub


Function GetFirstWord(Text As String, Optional Separator As String="")
    GetFirstWord = Split(Text, Separator)(0)
End Function

答案 1 :(得分:0)

如果您想变得疯狂,您实际上可以用一个Evaluate()替换整个代码:

Dim r As Range
Set r = Range("D1:D500")

Range("U1:U500") = Evaluate("IF(ROW(1:" & r.Count & "),IF(ISERROR(FIND("" ""," & r.Address & "))," & r.Address & ",LEFT(" & r.Address & ",FIND("" ""," & r.Address & ")-1)))")