2015-08-07 2 views
0

У меня возникли проблемы с извлечением первого слова текста и его копированием в новую ячейку. Это то, что у меня есть до сих пор. Любая помощь будет принята с благодарностью.Как извлечь первое слово соты и скопировать в другой столбец

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 
+0

'GETFIRSTWORD = Split (Text, Сепаратор) (0) ' –

+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 
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)))") 
Смежные вопросы